Avatar billede dm013 Nybegynder
07. maj 2003 - 17:26 Der er 8 kommentarer og
2 løsninger

Sammenligne 2 felter og....

jeg har to felter som indeholder henholdsvis en realiseret værdi og en estimeret værdi, jeg ønsker i en SP kun at få vist den af de to felter som er størst. hvorledes griber jeg dette an? nedenfor er vist hvordan jeg håndterede det i Access.

IIf([ko]>0 And IsNull([ek]) Or [ek]=0;[ko];IIf([ek]>0 And IsNull([ko]) Or [ko]=0;[ek];IIf([ko]>[ek];[ko];IIf([ek]>[ko];[ek];IIf([ko]=[ek];[ko])))))

dm013
Avatar billede mortrr Praktikant
07. maj 2003 - 18:37 #1
Det passer nok med fx:
ISNULL(CASE WHEN [ek] > [ko] THEN [ek] WHEN [ko] > [ek] THEN [ko] ELSE [ko] END, [ek])
Avatar billede bennytordrup Nybegynder
08. maj 2003 - 08:26 #2
Max(IsNull([ek], 0), IsNull([ko], 0)
Avatar billede mortrr Praktikant
08. maj 2003 - 08:43 #3
:-) Nogen gange skal man liige huske hvad man egentligt er igang med.
Avatar billede dm013 Nybegynder
08. maj 2003 - 09:03 #4
Hvordan får jeg det lige integreret i min SP,
prøvede nedenstående:
SELECT    TOP 50 Bnr, Pnr, LtrS, M_Mgd, KO, EK, M, Cr, PE, RIGHT(Bnr, 5) AS batch,Max(IsNull(ek, 0), IsNull(ko, 0) as test
FROM  tblO
ORDER BY Bnr DESC

meen får ADO-fejl: incorrect syntax near AS .....
Avatar billede mortrr Praktikant
08. maj 2003 - 09:20 #5
Der mangler en parantes-slut
SELECT    TOP 50 Bnr, Pnr, LtrS, M_Mgd, KO, EK, M, Cr, PE, RIGHT(Bnr, 5) AS batch,Max(IsNull(ek, 0), IsNull(ko, 0)) as test
FROM  tblO
ORDER BY Bnr DESC
Avatar billede dm013 Nybegynder
08. maj 2003 - 09:26 #6
SELECT    TOP 50 Bnr, Pnr, LtrS, M_Mgd, KO, EK, M, Cr, PE, RIGHT(Bnr, 5) AS batch,Max(IsNull(ek, 0), IsNull(ko, 0)) as test
FROM  tblO
ORDER BY Bnr DESC
ADO-Fejl: The MAX function requires 1 arguments. Statement(s) could not be prepared
Avatar billede mortrr Praktikant
08. maj 2003 - 09:35 #7
Drop den.

Jeg tænkte nok der var en årsag til at jeg ikke var faldet over den.
Der findes ikke noge max-funktion i sql, med den funktion.
Den er kun til aggregater - udvælge max værdi i et recordset.

Prøv min.
Avatar billede bennytordrup Nybegynder
08. maj 2003 - 11:18 #8
case when IsNull(ek, 0)>IsNull(ko, 0) then IsNull(ek, 0) else IsNull(ko, 0) end as test
Avatar billede dm013 Nybegynder
08. maj 2003 - 11:38 #9
det er gjort, er lige ved at teste om output er korrekt også hvis begge har samme værdi
Avatar billede dm013 Nybegynder
08. maj 2003 - 12:15 #10
tak for hjælpen
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