Beste mensen,
ik heb als voorbeeld een tabel met artikelen
sommige artikelen zijn betaald met de pin op een dag
sommige artikelen zijn betaald uit kas op een dag.
Graag wil ik het resultaat per dag in drie kolommen
kolom 1 = dag (verkoopdatum)
kolom 2 = het bedrag via de pin
kolom 3 = het bedrag via kas.
nu lukt het me om de resultaten onder elkaar te krijgen.
Maar dat is niet de bedoeling want dan krijg je zelfde dagen onder elkaar in twee kolommen
Bijvoorbeeld
22-12-2008 100 euro kas
22-12-2008 300 euro pin
23-12-2008 135 euro kas
kan het wat ik wil ?
dus bijvoorbeeld 22-12-2008 kas 100 euro pin 300 euro
veel dank
Peter
----------------------------------------------------
Oplossing
SELECT month(verkoopdatum), SUM(hoog) AS hoog, SUM(laag) AS laag
FROM (SELECT verkoopdatum, CASE WHEN btwhoog = 0 THEN verkoopprijs ELSE 0 END AS laag, CASE WHEN btwhoog = 1 THEN verkoopprijs ELSE 0 END AS hoog
FROM verkoopnevenartikelen
WHERE year(verkoopdatum) = 2008) AS TT
GROUP BY month(verkoopdatum)
ORDER BY month(verkoopdatum)
de velden zijn wel iets anders maar dit is het principe
ik heb als voorbeeld een tabel met artikelen
sommige artikelen zijn betaald met de pin op een dag
sommige artikelen zijn betaald uit kas op een dag.
Graag wil ik het resultaat per dag in drie kolommen
kolom 1 = dag (verkoopdatum)
kolom 2 = het bedrag via de pin
kolom 3 = het bedrag via kas.
nu lukt het me om de resultaten onder elkaar te krijgen.
Code:
SELECT SUM(bedrag) AS omzet, verkoopdatum
FROM Artikelen
WHERE (verkoopdatum >= CONVERT(smalldatetime, CONVERT(smalldatetime, '14-12-2008', 105), 105)) AND
(verkoopdatum <= CONVERT(smalldatetime, CONVERT(smalldatetime, '20-12-2008', 105), 105))
GROUP BY verkoopdatum , betaalmethode
ORDER BY verkoopdatum
Bijvoorbeeld
22-12-2008 100 euro kas
22-12-2008 300 euro pin
23-12-2008 135 euro kas
kan het wat ik wil ?
dus bijvoorbeeld 22-12-2008 kas 100 euro pin 300 euro
veel dank
Peter
----------------------------------------------------
Oplossing
SELECT month(verkoopdatum), SUM(hoog) AS hoog, SUM(laag) AS laag
FROM (SELECT verkoopdatum, CASE WHEN btwhoog = 0 THEN verkoopprijs ELSE 0 END AS laag, CASE WHEN btwhoog = 1 THEN verkoopprijs ELSE 0 END AS hoog
FROM verkoopnevenartikelen
WHERE year(verkoopdatum) = 2008) AS TT
GROUP BY month(verkoopdatum)
ORDER BY month(verkoopdatum)
de velden zijn wel iets anders maar dit is het principe
Laatst bewerkt: