Ik vind het lastig hoe ik dit probleem moet omschrijven, maar het is ongetwijfeld al 100x eerder gedaan, maar ik doe me best het uit te leggen.
Die laatste tabel geeft het aantal crashes aan per dag op een systeem.
Wat wil ik nou?
Ik wil een query maken waar ik de repairs kan opvragen en kan zien hoeveel crashes er binnen een x aantal dagen zijn geweest sinds de repair, inclusief de rijen waar er 0 zijn.
De queries waar ik mee kom geven niet de 0-rijen erbij, maar outer joinen wil ook niet helpen. Waarschijnlijk gaat er dus een kronkel in mijn brein niet helemaal goed. Ik heb nu zo iets:
Hieruit krijg ik dus een mooi overzicht, maar geen 0-rijen, terwijl ik die wel verwacht
Heeft iemand een duwtje in de goede richting? Ik heb al gegoogled op moving average (omdat dat mijn inziens vergelijkbare queries op moet leveren), maar daar vond ik voornamelijk oplossing waar je een tabel heel vaak op zich zelf moet joinen. Niet van toepassing hier.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| 3 tabellen: System --------------------------- ID | Naam | .... Repair --------------------------- ID | SystemID | Date (Datetime) Crashes --------------------------- ID | SystemID | Date (Date) | TotalCrashes |
Die laatste tabel geeft het aantal crashes aan per dag op een systeem.
Wat wil ik nou?
Ik wil een query maken waar ik de repairs kan opvragen en kan zien hoeveel crashes er binnen een x aantal dagen zijn geweest sinds de repair, inclusief de rijen waar er 0 zijn.
De queries waar ik mee kom geven niet de 0-rijen erbij, maar outer joinen wil ook niet helpen. Waarschijnlijk gaat er dus een kronkel in mijn brein niet helemaal goed. Ik heb nu zo iets:
SQL:
1
2
3
4
5
6
7
8
9
10
11
| SELECT Repair.SystemID, Repair.Date as RepairDate, SUM(Crashes.TotalCrashes) AS CrashesCount FROM Repair INNER JOIN Crashes ON (Crashes.SystemID = Repair.SystemID) WHERE Crashes.Date BETWEEN Repair.Date AND DATEADD(d, 7, Repair.Date) GROUP BY Repair.SystemID, Repair.Date |
Hieruit krijg ik dus een mooi overzicht, maar geen 0-rijen, terwijl ik die wel verwacht
Heeft iemand een duwtje in de goede richting? Ik heb al gegoogled op moving average (omdat dat mijn inziens vergelijkbare queries op moet leveren), maar daar vond ik voornamelijk oplossing waar je een tabel heel vaak op zich zelf moet joinen. Niet van toepassing hier.
[ Voor 3% gewijzigd door armageddon_2k1 op 03-12-2012 14:59 . Reden: SUM ipv COUNT ]
Engineering is like Tetris. Succes disappears and errors accumulate.