Avatar billede karsten_larsen Praktikant
26. august 2007 - 10:21 Der er 2 kommentarer og
1 løsning

Store procedure med If exists og min(post) giver fejl

Har følgende storeprocedure som fungerer perfekt:

SELECT @Ledig = Time
From DB
WHERE    Time in
(
Select min(Time)
From DB
WHERE Optaget = @Optaget   
)

Afhængigt om der findes en post skal en bestemt returneres. SÅ jeg har prøvet følgende, men får fejl i konstruktionen af den
If exists   
(
  SELECT @Ledig = Time
  From DB
  WHERE    Time in
  (
    Select min(Time)
    From DB
    WHERE Optaget = @Optaget   
    )
  )
        Begin
      Set @svar = @Ledig
    END
ELSE
    Begin
      Set @svar = 99
    END

Hvad gør jeg forkert?


??:-) karsten_larsen
Avatar billede lorentsnv Nybegynder
30. august 2007 - 09:29 #1
Hvis du ikke har løst problemet, så prøv lige at sende fejlbeskede med.
Kan det tænkes, at du ikke må lave en @Ledig = Time i din If Exists?
Avatar billede karsten_larsen Praktikant
30. august 2007 - 10:20 #2
Der var data tilrådighed.

Har lavet en anden løsning indtil videre



If exist(
SELECT @Ledig = Time
From DB
WHERE    Time in
(
Select min(Time)
From DB
WHERE Optaget = @Optaget   
)
)
Begin
Set @Flag = 1
End
Else
Begin
Set @Flag = 0
End

og derfra

If Flag = 1 then
Begin
End

etc.

Det virker fint.

Jeg vil bare mene at ovenstående burde virke, måske burde kunne jeg gøre følgende
  SELECT Isnull(@Ledig = Time, 0)
  From DB
  WHERE    Time in

så burde et NULL være fikset eller hur?
Avatar billede karsten_larsen Praktikant
06. september 2007 - 15:34 #3
lukker sp.
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