[MySQL] DISTINCT en GROUP combineren

Pagina: 1
Acties:

  • Dutchman!
  • Registratie: Januari 2000
  • Laatst online: 12-02 16:50
Ik zit met een probleempje bij de volgende query:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$provGesch=mysql_query("SELECT 
            P.maand, 
            SUM(ABS(P.saldo)), 
            SUM(P.provisie), 
            SUM(CASE WHEN P.provisie > 0 
                 AND (P.nieuw != 'nieuw' OR P.nieuw IS NULL) 
                 THEN ((CASE WHEN A.datum < '2005-01-01' 
                     THEN (L.b2004+I.o2005) 
                     WHEN A.datum >='2005-01-01' AND A.datum < '2006-01-01' 
                     THEN (L.b2005+I.o2005) 
                     WHEN A.datum >='2006-01-01' AND A.datum < '2007-01-01' 
                     THEN (L.b2006+I.o2006) 
                     WHEN A.datum >='2007-01-01'
                     THEN 0.00 
                     ELSE 0.00 
                    END)/1000)*ABS(P.saldo)
                ELSE 0.00 
                END) AS uitprov 
            FROM alles AS A, provisie AS P, labels AS L, intercode I 
            WHERE A.contract=P.contract 
            AND A.bron=I.code 
            AND A.label=L.sublabel 
            AND A.bron='$int' 
            AND P.provisie > 0 
            AND P.maand >= '2006-01-01'
            GROUP BY maand
            ");


Ik haal contractnummers en bronnen uit tabel A, die worden gekoppeld aan provisie informatie uit tabel P. Per lopend contract staat er per maand een saldo, provisie etc. in P. Nu wil ik een DISTINCT contract uit A halen om te voorkomen dat ik provisie dubbel ga tellen. (helaas kan A.contract niet UNIQUE zijn om administratieve redenen) Ik krijg alleen niet uitgevogeld hoe ik dat ga combineren met een GROUP op maand ;(

Ik ben een beetje aan het experimenteren met GROUP BY maand HAVING *iets slims* en met diverse JOIN en DISTINCT combinaties, maar de casus geeft zich vooralsnog niet gewonnen. Wie snapt databases beter dan ik en heeft een idee :)

We spend our years as a tale that is told