Avatar billede carpediem Nybegynder
09. oktober 2001 - 15:33 Der er 14 kommentarer og
1 løsning

SQL streng

Jeg har en sql streng, som næsten gør hvad den skal:

Select LevDato, IsNull(Sum(Tid_opsaet_estmrt_totalsek*Antal_profiler),0) As Opsaet, IsNull(Sum(Tid_pakning_estmrt_totalsek*Antal_profiler),0) As Pak from Ordrer

I ordrer er der også en celle der hedder Status. Her kommer problemet så ind. Det jeg gerne vil er:
Select LevDato, HvisStatus<40(IsNull(Sum(Tid_opsaet_estmrt_totalsek*Antal_profiler),0)) As Opsaet, HvisStatus<80(IsNull(Sum(Tid_pakning_estmrt_totalsek*Antal_profiler),0)) As Pak from Ordrer

Forstår i hvad jeg mener?
Avatar billede mipe1 Nybegynder
09. oktober 2001 - 15:37 #1
... from ordrer where status<80
Avatar billede terry Ekspert
09. oktober 2001 - 15:37 #2
Look at the IIF function in TSQL
Avatar billede proaccess Nybegynder
09. oktober 2001 - 15:38 #3
Har MS-SQL ikke en IIf ???

Select LevDato, IIf(Status<40,IsNull(Sum(Tid_opsaet_estmrt_totalsek*Antal_profiler),0),0) As Opsaet, IIf(Status<80,IsNull(Sum(Tid_pakning_estmrt_totalsek*Antal_profiler),0),0) As Pak from Ordrer

Det kan være at jeg er WAY OFF, men prøv den lige af...
Avatar billede terry Ekspert
09. oktober 2001 - 15:40 #4
Hi pro! TSQL does have an IIF, so your SQL is OK I would think :o)
Avatar billede proaccess Nybegynder
09. oktober 2001 - 15:43 #5
>Terry: thx, let\'s see if it does the trick ;-)
Avatar billede carpediem Nybegynder
09. oktober 2001 - 15:46 #6
I thought that IIf would work too, but I get an error that says: Incorrect syntax near \'<\'
Avatar billede torbenkoch Nybegynder
09. oktober 2001 - 15:47 #7
Hi guys,

The Iif function seems to be available only in connection with dataware house services - instead of the Iif you can use the CASE :

  Select LevDato,
        CASE
          WHEN Status < 40 THEN IsNull(Sum(Tid_opsaet_estmrt_totalsek*Antal_profiler),0)
          ELSE 0
        END AS Opsaet,
        CASE
          WHEN Status < 80 THEN IsNull(Sum(Tid_pakning_estmrt_totalsek*Antal_profiler),0)
          ELSE 0
        END AS Pak
  from Ordrer
Avatar billede terry Ekspert
09. oktober 2001 - 15:49 #8
Oh I bet its having problems interpreting the , Try changing it to ;
Avatar billede terry Ekspert
09. oktober 2001 - 15:51 #9
Hi to you too,
It doesnt state that in Books Online! But then Microsoft dont tell us everything :o(
Avatar billede torbenkoch Nybegynder
09. oktober 2001 - 15:51 #10
Terry - I think it is only Access that have problems with this because it is so stupid that it uses regional settings for list separators. SQL doesn\'t do that.

Try running this simple example in Query Analyzer:

  select iif(1, 3, 4) as test

and you will get the message:

  \'iif\' is not a recognized function name.

Avatar billede proaccess Nybegynder
09. oktober 2001 - 15:51 #11
>Torben: Jeg overgiver mig... Der er nu noget af et spring \"nede\" fra MS Access... ;-)
Avatar billede terry Ekspert
09. oktober 2001 - 15:53 #12
hehe..
Avatar billede torbenkoch Nybegynder
09. oktober 2001 - 15:53 #13
Well, if you look up the iif function in BO it is put in the Analysis Services section *grin*
Avatar billede torbenkoch Nybegynder
09. oktober 2001 - 15:55 #14
Ja, Access og SQL er godt nok to forskellige verdener, man skulle ikke tro de kom fra samme firma...!
Avatar billede carpediem Nybegynder
09. oktober 2001 - 16:17 #15
Jubiii. Torben. That did the trick
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