Select (select count(colA) from tbl where colD IN ( 111,122,133)) AS Antal1, (select count(colA) from tbl where colD IN (211, 222)) AS Antal2
Jeg kan dog ikke få den til at lægge de to tal sammen bagefter uden at skulle skrive det en gang til:
Select (select count(colA) from tbl where colD IN ( 111,122,133)) AS Antal1, (select count(colA) from tbl where colD IN (211, 222)) AS Antal2, (select count(colA) from tbl where colD IN ( 111,122,133)) + (select count(colA) from tbl where colD IN (211, 222)) AS Antal3
Men så er vi nok ude i noget hastighed/performance problemer. Jeg ville derfor lægge de 2 tal sammen i mit program i stedet.
Hvis den sidste sum skal laves i SQL udtrækket kunne det gøres som:
SELECT count(t2.colA) AS Antal1, count(t3.colA) AS Antal2, count(t1.colA) as Antal3 from tbl t1 left join tbl t2 on t1.ColA = t2.ColA and t1.colD in (111,122,133) left join tbl t3 on t1.ColA = t3.ColA and t3.colD in (211, 222) where t1.colD in (111,122,133,211, 222)
ahh, kan godt se principperne i begge beskrevne metoder - begge vil "come in handy" fremover også, thanx. Smid et svar hver, så forhøjer jeg pointsne, så der er 15 til jer hver
hvis det skal udbygges yderligere så bør du benytte en case statement i stedet:
select sum(case when colD IN (111,122,133) then 1 else 0 end) as Antal1, sum(case when colD IN (211,222) then 1 else 0 end) as Antal2, sum(case when colD IN (111,122,133,211,222) then 1 else 0 end) as Antal3
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.