[SQL] Query voor meerdere where's met group by

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DyArt
  • Registratie: Maart 2003
  • Laatst online: 11:30
Het probleem wat ik heb is dat ik een tabel heb met verschillende periodes waarin boekstuknummers staan met een debet en een credit getal. Nu wil ik graag per periode zien wat de waarde is van een reeks boekstuknummers. Ik heb als ik alles wil zien de volgende werkende query:
code:
1
2
3
4
5
SELECT Sum(((GRBPER.CREDITTOTAAL)-(GRBPER.DEBETTOTAAL))) AS 'TOTAAL', GRBPER.PERIODE
FROM GRBPER
WHERE (GRBPER.GROOTBOEKCODE Between '3000' And '5000')
GROUP BY GRBPER.PERIODE
ORDER BY GRBPER.PERIODE


Nu zou ik eigenlijk willen hebben dat ik als resultaat krijg totaal1 van grootboekcode tussen 3000 en 3050 en totaal2 van grootboekcode tussen 3051 en 5000

Ik heb geprobeerd meerdere selects met een where statement te maken maar dan krijg ik niet de gewenste output.

Acties:
  • 0 Henk 'm!

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 11-09 16:00

Skinny

DIRECT!

Klinkt dus alsof je een extra 'kolom' moet maken (een berekening), waarop je vervolgens ook kunt GROUPen. In dit geval wil je dus (als ik je goed begrijp) een soort van typering in je grootboekrekeningen aanbrengen. Dit kun je doen met een CASE WHEN.. END statement.

Uit het hoofd dus niet getest :
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SELECT 
    CASE 
        WHEN GROOTBOEKCODE BETWEEN '3000' AND '3050' THEN 'Balans'
        WHEN GROOTBOEKCODE BETWEEN '3051' AND '5000' THEN 'P&L'
        ELSE 'Onbekend'
    END AS RekeningGroup,
    GRBPER.PERIODE,
    Sum(((GRBPER.CREDITTOTAAL)-(GRBPER.DEBETTOTAAL))) AS 'TOTAAL'
FROM GRBPER
WHERE (GRBPER.GROOTBOEKCODE Between '3000' And '5000')
GROUP BY 
    CASE 
        WHEN GROOTBOEKCODE BETWEEN '3000' AND '3050' THEN 'Balans'
        WHEN GROOTBOEKCODE BETWEEN '3051' AND '5000' THEN 'P&L'
        ELSE 'Onbekend'
    END,
    GRBPER.PERIODE
ORDER BY 
    CASE 
        WHEN GROOTBOEKCODE BETWEEN '3000' AND '3050' THEN 'Balans'
        WHEN GROOTBOEKCODE BETWEEN '3051' AND '5000' THEN 'P&L'
        ELSE 'Onbekend'
    END,
    GRBPER.PERIODE

SIZE does matter.
"You're go at throttle up!"


Acties:
  • 0 Henk 'm!

  • DyArt
  • Registratie: Maart 2003
  • Laatst online: 11:30
Perfect dit is de oplossing. Ik had zelf nog niet gedacht aan een case scenario