Convert funktion driller mig.
Hejsa.Jeg laver et udtræk fra et AS/400 system, som skal bruges i noget C# software jeg er ved at udvikle.
Der skal her bl.a. regnes priser ud. I AS/400 systemet, står prisen for hver vare i EURO. I en anden tabel ligger så den aktuelle kursværdi til danske kr.
Da jeg gerne vil have værdien i Jyske Dollars, vil jeg altså gerne konvertere til DKK direkte i min SQL forespørgelse.
Men når jeg tilføjer konverteringsfunktionen, så får jeg i stedet for 445 rækker data lige pludselig 10305 rækker.
Da det er udtræk fra AS/400 system, ser kollone navne vanvittige ud, så nedestånde SQL ser måske lidt indviklet ud.
Det er denne som driller (Her ville jeg mene at den burde omregne fra EURO til DKK):
CONVERT(NUMERIC(10,2), KVAMSTP.KVAFSK * (VALMSTP.VALKUR/100)) as pris
Hvis jeg i stedet skriver (Her udskrives resultatet i EURO) :
KVAMSTP.KVAFSK as pris
Her hele SQL sætningen.
SELECT DISTINCT VARMSTL1.VARNR AS Varenr, VARMSTL1.VARTXT AS EmballageNavn, KVAMSTP.KUNNR AS Kundenr, CONVERT(NUMERIC(10,2), KVAMSTP.KVAFSK * (VALMSTP.VALKUR/100)) as pris
FROM KVAMSTP INNER JOIN
VARMSTL1 ON KVAMSTP.OFLVAR = VARMSTL1.VARNR CROSS JOIN
VALMSTP
WHERE (KVAMSTP.KUNNR = '000199') OR
(KVAMSTP.KUNNR = '000399') OR
(KVAMSTP.KUNNR = '000499') OR
(KVAMSTP.KUNNR = '000599') OR
(KVAMSTP.KUNNR = '000699') OR
(KVAMSTP.KUNNR = '000799') OR
(KVAMSTP.KUNNR = '000899')
ORDER BY VARMSTL1.VARNR
Nogen som ved hvad jeg gør galt?
Jeg har simpelthen stirret mig blind på det!
/Lasse