Hej! Om man kan använda IIF kan man göra såhär: Och annars kan du helt enkelt dela upp det i två frågor; Vad enkelt det kan vara ibland :-)Knepig SQL-fråga, olösbar?
Jag sitter och ska göra ett litet hjälpprogram till ett existerande system. I den databasen (Foxpro) så har de lagt in makulerade transaktioner på ett knepigt sätt.
I stället för att lägga in ett negativt värde så har de lagt in ett positivt värde och satt en flagga som visar att det är en makulering.
På det viset så faller ju alla SUM och andra funktioner vad jag kan förstå :-(
Jag hoppas jag har fel och någon har en lösning på problemet.
Exempeldata:
id belopp flagga
1 100
1 200
1 100 C
2 200
2 100 C
Här vill jag alltså gruppera på id och summera beloppet. för id 1 ska summabeloppet bli 200 och för id 2 ska summabeloppet 100.
/Per-ErikSv: Knepig SQL-fråga, olösbar?
SELECT id, SUM(IIF(flagga='C',-belopp,belopp)) FROM tabell GROUP BY id
/JohanSv: Knepig SQL-fråga, olösbar?
SELECT id, SUM(belopp) FROM
((SELECT id, -belopp as belopp WHERE flagga = 'C')
UNION ALL
(SELECT id, belopp WHERE NOT flagga = 'C'))
GROUP BY idSv:Knepig SQL-fråga, olösbar?
IIF hade jag redan använt men hade inte tanke på att det gicka att kombinera med SUM
Tack så mycket.
/P-E