Hey mensen,
Ik heb een tabel met 3 kolommen (we houden het effe simpel)
itemID => primary key
Date_Created => Datum dat het item is aangemaakt
Date_Modified => Datum dat het item voor het laatst is aangepast
Ik wil deze data vertalen naar een tabel waarin ik per week kan zien hoeveel items er in die week zijn aangemaakt en aangepast. Dit verteld me namelijk iets over de inname van nieuwe items, maar ook over hoe noodzakelijk het is om items weer eens te gaan herzien
Ik ben momenteel zo ver dat ik weet hoe ik beide los voor elkaar moet krijgen:
Voor de Created:
Appeltje-eitje... De volgende is wat lastiger maar nog steeds te volgen:
Die CASE WHEN staat er in omdat ik een modify op de eerste dag nog niet echt een modify vind - je bent dan nog steeds met dat item bezig geweest. Die CASE WHEN mag van mij weg, maar dit leek me gewoon wat netter.
Maar toen kwam de echte uitdaging: Hoe voeg ik deze twee nu samen? Ik zoek dus naar een query die beide bovenstaande query's combineert en via een join op de jaar en week getallen de resultaten met elkaar combineert.
Een bijkomend probleem is dat ik gaten moet toe laten staan: in sommige weken zullen er geen nieuwe items zijn aangemaakt, of geen items zijn aangepast. Pas als er in een week geen nieuwe items zijn aangemaakt, noch zijn aangepast, mag van mij de week komen te vervallen. Een JOIN gebruiken kan dan volgens mij niet.
Hebben jullie suggesties om dit probleem op te lossen. Ik kan het wel oplossen met views, maar ik wil ook graag weten hoe ik dit voor elkaar krijg zonder views (al is het maar om het leereffect)
Ik heb een tabel met 3 kolommen (we houden het effe simpel)
itemID => primary key
Date_Created => Datum dat het item is aangemaakt
Date_Modified => Datum dat het item voor het laatst is aangepast
Ik wil deze data vertalen naar een tabel waarin ik per week kan zien hoeveel items er in die week zijn aangemaakt en aangepast. Dit verteld me namelijk iets over de inname van nieuwe items, maar ook over hoe noodzakelijk het is om items weer eens te gaan herzien
Ik ben momenteel zo ver dat ik weet hoe ik beide los voor elkaar moet krijgen:
Voor de Created:
SQL:
1
2
3
4
5
6
7
8
9
| SELECT Datename(YEAR, Date_Created) as YEAR, Datename(WEEK, Date_Created) as WEEK, COUNT (*) as COUNT_CREATED FROM SomeTable GROUP BY Datename(YEAR, Date_Created), Datename(WEEK, Date_Created) |
Appeltje-eitje... De volgende is wat lastiger maar nog steeds te volgen:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| SELECT Datename(YEAR, Date_Modified) as YEAR, Datename(WEEK, Date_Modified) as WEEK, COUNT ( CASE WHEN Date_Modified < DATEADD (hh, 12, Date_Created) THEN NULL ELSE Date_Modified END) AS COUNT_MODIFIED FROM SomeTable GROUP BY Datename(YEAR, Date_Modified), Datename(WEEK, Date_Modified) |
Die CASE WHEN staat er in omdat ik een modify op de eerste dag nog niet echt een modify vind - je bent dan nog steeds met dat item bezig geweest. Die CASE WHEN mag van mij weg, maar dit leek me gewoon wat netter.
Maar toen kwam de echte uitdaging: Hoe voeg ik deze twee nu samen? Ik zoek dus naar een query die beide bovenstaande query's combineert en via een join op de jaar en week getallen de resultaten met elkaar combineert.
Een bijkomend probleem is dat ik gaten moet toe laten staan: in sommige weken zullen er geen nieuwe items zijn aangemaakt, of geen items zijn aangepast. Pas als er in een week geen nieuwe items zijn aangemaakt, noch zijn aangepast, mag van mij de week komen te vervallen. Een JOIN gebruiken kan dan volgens mij niet.
Hebben jullie suggesties om dit probleem op te lossen. Ik kan het wel oplossen met views, maar ik wil ook graag weten hoe ik dit voor elkaar krijg zonder views (al is het maar om het leereffect)