Avatar billede dragnor Juniormester
20. september 2006 - 22:57 Der er 6 kommentarer og
1 løsning

Speciel Count

Hej Eksperter.

hvis jeg har en tabel der ser sådan her ud.

AutoNr  | N1 | N2 | N3 |
------------------------
1      | Ja | Nej| Ja |
2      | Ja | Nej| Ja |
3      | Nej| Nej| Ja |
4      | Ja | Nej| Ja |

Nu skal jeg finde ud af hvor mange gange der står "Ja", hvordan gør jeg det? Dvs. en count der gerne i dette eksempel skulle give resultatet 7.

MVH

Dragnor
Avatar billede lorentsnv Nybegynder
20. september 2006 - 23:02 #1
Select sum(Counter) as Total
From (
  select Counter = Case When N1 = 'Ja' Then 1 Else 0 End
    + Case When N2 = 'Ja' Then 1 Else 0 End
    + Case When N3 = 'Ja' Then 1 Else 0 End
  From Tabel
  ) as a
Avatar billede kjulius Novice
20. september 2006 - 23:55 #2
Eller simpelthen

SELECT SUM(CASE WHEN N1 = 'Ja' THEN 1 ELSE 0 END + CASE WHEN N2 = 'Ja' THEN 1 ELSE 0 END + CASE WHEN N3 THEN 1 ELSE 0 END) AS Total
FROM Tabel
Avatar billede dragnor Juniormester
21. september 2006 - 09:07 #3
tak kjulius og lorentsnv, det var lige hvad jeg skulle bruge, men eftersom lorentsnv svarede først er det vel rimeligt at han modtager point eller?

Mvh

Dragnor
Avatar billede kjulius Novice
21. september 2006 - 09:52 #4
Enig.
Avatar billede lorentsnv Nybegynder
21. september 2006 - 09:58 #5
kjulius sin SQL er lidt kortere en den jeg skrev. Så vidt jeg kan se, så er eksekveringsplanen nøjagtig den samme, så for SQL Server er det lige meget om du bruger den ene eller anden SQL.

I øvrig er der en lille fejl i kjulius sin SQL:
CASE WHEN N3 THEN 1 ELSE 0 END
skal rettes til
CASE WHEN N3 = 'Ja' THEN 1 ELSE 0 END

:-)
Avatar billede kjulius Novice
21. september 2006 - 22:34 #6
Ja, for pokker. Du har ret, du skal hænges! :-)
Avatar billede janus_007 Nybegynder
22. september 2006 - 00:07 #7
Jeg håber da ikke det er en speciel stor tabel du skal udføre de cases på ;-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester