Babelfisken Skrevet 18. august 2006 Del Skrevet 18. august 2006 SQLServer 2005: Har flere tabeller der jeg ønsker å telle antall records og presentere disse gruppert på f.eks ukedag. Pr. tabell er dette enkelt nok: SELECT DatePart(dw, AWP1.Dato) AS Ukedag, Count(AWP1.Dato) AS [AWP1 Antall] FROM AWP1 WHERE AWP1.Dato > DateAdd(d, - 7, GetDate()) GROUP BY DatePart(dw, AWP1.Dato) Hvordan kan jeg joine andre tabeller med ukedag og Antall med denn for å få resultatsettet: Ukedag, AWP1 Antall, AWP2 Antall Alle tabellene har datofelt med unik index og verdien på datostempelene er ikke relatert mellom tabellene. Lenke til kommentar
roac Skrevet 20. august 2006 Del Skrevet 20. august 2006 Det du ser etter er kombinasjonen av CTE og PIVOT: use tempdb; go create table A ( id int identity, dato datetime ); go create table B ( id int identity, dato datetime ); go insert into A values (getdate()); insert into A values (getdate()); insert into A values (getdate()-1); insert into A values (getdate()-2); insert into B values (getdate()); insert into B values (getdate()); insert into B values (getdate()-1); insert into B values (getdate()-1); insert into B values (getdate()-2); insert into B values (getdate()-2); go with CTE as ( select 'A' as source, datepart(dw,dato) as dow, dato from A -- where clause union all select 'B' as source, datepart(dw,dato) as dow, dato from B ) select * from CTE pivot (count(dato) for source in ([A],[B])) as pvt go Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå