08. februar 2009 - 17:06Der 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
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"
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.
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"
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.