Ik zit met een breinkraker... ik heb een query om vanuit een database issues te kunnen bekijken. Daarvan wil ik status, etc hebben. De query ziet er als volgt uit:
Alles ging goed, totdat ik de bc_date op ging vragen. In de tabel bug_comments kunnen van 1 issue meerdere records voorkomen, elke keer als er een status is gewijzigd of als er commentaar is toegevoegd komt er in deze tabel een extra record met de datum van de wijziging en wat er gewijzigd is.
Nou wil ik de eerste wijziging per issue terugkrijgen, maar met de query zoals hierboven krijg ik het volgende resultaat (voorbeeld):
Ik dacht slim te zijn door de DISTINCT te gebruiken, maar dan klopt het nog steeds niet, aangezien er meerdere data "Opgepakt" zijn... dus dan voegt hij alleen de records met dezelfde datum bij elkaar. Terwijl ik dus van elke issue maar 1 record wil met de eerste datum waarop de issue is opgepakt.
Kan iemand mij helpen?
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| select bg_id [Issue ID], st_name [Status], ct_name [Categorie], pr_name [Prioriteit], convert(varchar, bg_reported_date, 5) [Issue Aangemaakt], convert(varchar, bg_last_updated_date, 5) [Issue Gesloten], convert(varchar, bc_date, 5) [Issue opgepakt], datediff("day", "bg_reported_date", "bc_date") [Reactietijd in dagen], datediff("day", "bg_reported_date", "bg_last_updated_date") [Doorlooptijd in dagen] from bugs left outer join bug_comments on bg_id = bc_bug and bc_type = 'update' and bc_comment like 'changed%' left outer join projects on pj_id = bg_project left outer join statuses on st_id = bg_status left outer join categories on ct_id = bg_category left outer join priorities on pr_id = bg_priority where bg_project = 68 and month(bg_reported_date) = 8 and (st_id = 5 or st_id = 3) order by bg_id, bc_date |
Alles ging goed, totdat ik de bc_date op ging vragen. In de tabel bug_comments kunnen van 1 issue meerdere records voorkomen, elke keer als er een status is gewijzigd of als er commentaar is toegevoegd komt er in deze tabel een extra record met de datum van de wijziging en wat er gewijzigd is.
Nou wil ik de eerste wijziging per issue terugkrijgen, maar met de query zoals hierboven krijg ik het volgende resultaat (voorbeeld):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Issue Status Categ Prio Aangemaakt Gesloten Opgepakt Reactietijd Doorlooptijd ================================================================= 3861 closed Fout low 02-08-07 09-08-07 02-08-07 0 7 3861 closed Fout low 02-08-07 09-08-07 02-08-07 0 7 3861 closed Fout low 02-08-07 09-08-07 02-08-07 0 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3861 closed Fout low 02-08-07 09-08-07 09-08-07 7 7 3868 closed 03-08-07 10-09-07 03-08-07 0 38 3868 closed 03-08-07 10-09-07 06-08-07 3 38 3868 closed 03-08-07 10-09-07 06-08-07 3 38 3868 closed 03-08-07 10-09-07 07-08-07 4 38 3868 closed 03-08-07 10-09-07 07-08-07 4 38 3868 closed 03-08-07 10-09-07 10-09-07 38 38 |
Ik dacht slim te zijn door de DISTINCT te gebruiken, maar dan klopt het nog steeds niet, aangezien er meerdere data "Opgepakt" zijn... dus dan voegt hij alleen de records met dezelfde datum bij elkaar. Terwijl ik dus van elke issue maar 1 record wil met de eerste datum waarop de issue is opgepakt.
Kan iemand mij helpen?
[ Voor 0% gewijzigd door een moderator op 21-09-2007 23:25 . Reden: highlighting maakt het wat leesbaarder :) ]