Avatar billede dennisbjorn Juniormester
08. februar 2009 - 17:06 Der er 3 kommentarer og
1 løsning

Case i where betingelse

Hej,

Jeg har to SQL-sætninger som fungerer OK hver for sig.
Den første har en variabel "proces2" i where betingelsen. Variablen indeholder kommasepareret ID'er (3, 34, 150 osv.)

StrSQL="SELECT tbl_Processer.ID FROM tbl_Processer WHERE ID IN (" & proces2 & ") "

Den anden SQL-sætning ser således ud:

StrSQL="SELECT tbl_Processer.Omraade, tbl_Processer.Navn AS PRO, tbl_Processer.ID, '0' AS Afkrydset FROM tbl_Processer ORDER BY Omraade"

Jeg ønsker at tilføje " WHERE ID IN (" & proces2 & ") " fra den første sætning, som en CASE i den anden sætning. Det vil sige hvis where betingelsen er opfyldt så er Afkrydstet = 1 Ellers 0
Avatar billede tjp Mester
08. februar 2009 - 17:49 #1
Det her er rent skud fra hoften og absolut ikke testet! ;-)

StrSQL="SELECT tbl_Processer.Omraade, tbl_Processer.Navn AS PRO, tbl_Processer.ID, Afkrydset = CASE WHEN (SELECT 1 WHERE ID IN ("
& proces2 & ")) = 1 THEN 1 ELSE 0 END FROM tbl_Processer ORDER BY Omraade"
Avatar billede dennisbjorn Juniormester
08. februar 2009 - 18:16 #2
Desværre - virker ikke
Avatar billede wagner Nybegynder
08. februar 2009 - 23:39 #3
Din case skal være i sin select.

Noget ala det her:

StrSQL="SELECT tbl_Processer.Omraade, tbl_Processer.Navn AS PRO, tbl_Processer.ID, case when tbl_Processer.ID in (" & proces2 & ") then '1' else '0' end case AS Afkrydset FROM tbl_Processer ORDER BY Omraade"

Jeg kan ikke huske om du kan bruge in på denne måde. Ellers kan evt lave en funktion, der gør det samme eller omskrive til or sætning. Du kan måske også lave din when om til en selevt i stil med det tjp foreslår. bare anvendt i din select og ikek i din where.

Wagner
Avatar billede dennisbjorn Juniormester
09. februar 2009 - 01:04 #4
Tak Wagner!

Det kører efter en smule tilretning:

StrSQL="SELECT tbl_Processer.Omraade, tbl_Processer.Navn AS PRO, tbl_Processer.ID, (CASE WHEN (ID IN (" & proces2 & ")) THEN '1' ELSE '0' END) AS Afkrydset FROM tbl_Processer ORDER BY Omraade"
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



IT-JOB

Politiets Efterretningstjeneste

Bliv AD-specialist hos PET

De Nationale Geologiske Undersøgelser for Danmark og Grønland (GEUS)

IT-systemadministrator søges til GEUS

Udviklings- og Forenklingsstyrelsen

Seniorudviklere med lyst til faglige udfordringer