Avatar billede harisk Nybegynder
03. november 2005 - 10:55 Der er 7 kommentarer og
1 løsning

CASE i WHERE clause (problemer med SELECT IN)

hej, jeg har en sp som volder mig lidt hovedpine lige nu, og den del ser sådan ud:

WHERE                      SPD.ResponsibleProviderEmployeeID =
                        CASE @Mode
                            WHEN 0 THEN @MainProviderEmployeeID
                            WHEN 1 THEN (SELECT * FROM @TeamEmployees)
                        END       

hvis den er 0 så er der ingen problemer, men hvis den er 1 så går det galt pga at subquery returner mere end een række. Jeg prøvede med at udskifte = med IN men  det giver fejl i syntaksten, hvad kan jeg ellers gøre ud over at dele den op i 2 select statements?
Avatar billede 0xffff Nybegynder
03. november 2005 - 11:07 #1
case er opbygget således at man skal have ét svar tilbage.

Du kan evt lave en Select top 1 [feltnavn] from @tempemployees

Det skulle give et entydigt svar til casen. Men er ikke sikker på at det er det du vil have.
Avatar billede harisk Nybegynder
03. november 2005 - 11:12 #2
ok... Nej det er det nemlig ikke. Sagen er den at jeg på baggrund at @Mode skal kunne vise egne(@Mode = 0) eller hele holdets (@Mode = 1) aftaler. Så i min midlertidige tabel @TeamEmployees har jeg alle holdets medarbejder. hmmm...
Avatar billede arne_v Ekspert
03. november 2005 - 12:07 #3
hvad med

... WHERE (@Mode = 0 AND SPD.ResponsibleProviderEmployeeID = @MainProviderEmployeeID)
OR (@Mode = 1 AND SPD.ResponsibleProviderEmployeeID IN (SELECT id FROM @TeamEmployees))

?
Avatar billede harisk Nybegynder
03. november 2005 - 13:34 #4
jeg glemte lige at nævne, @Mode er ine at input parametre til SP, den er ikke gemt i databasen nogen steder. Hvis det bare vare så nemt.. :(
Avatar billede arne_v Ekspert
03. november 2005 - 14:41 #5
og ?
Avatar billede harisk Nybegynder
03. november 2005 - 14:43 #6
vil det da sige at jeg kan bruge input parameter på den måde? :/ jeg forsøger lige.
Avatar billede harisk Nybegynder
03. november 2005 - 14:46 #7
jamen fyr et svar af!
det virker!!!! :D
Avatar billede arne_v Ekspert
03. november 2005 - 14:48 #8
svar
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