Query vraag
Hallo,
Ik heb een query waar ik niet zo goed uit kom.
$valueclient is een array met nu 3 waardes erin.
Ik zou graag als output zoiets willen:
idkop - titel - totaal
| 1 | Module1 | 15,00 |
| 1 | Module2 | 15,00 |
| 1 | Module3 | 15,00 |
| 2 | Module1 | 15,00 |
| 2 | Module2 | 15,00 |
| 2 | Module3 | 15,00 |
Aan de clients zitten administraties vast, en door middel van deze administraties kun je de modules selecteren,
echter wil ik nu de modules gesorteerd op klant, en niet als administratie.
Ik krijg nu namelijk zoiets:
idkop - titel - totaal
| 1 | Module1 | 15,00 |
| 1 | Module2 | 15,00 |
| 1 | Module2 | 15,00 |
| 1 | Module3 | 15,00 |
| 1 | Module3 | 15,00 |
| 1 | Module3 | 15,00 |
| 2 | Module1 | 15,00 |
| 2 | Module1 | 15,00 |
| 2 | Module1 | 15,00 |
Hij telt dus ook nog eens de modules per administratie er bij op.
Ik heb een query waar ik niet zo goed uit kom.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$vulRegels = "SELECT
factuur_kop.id_customer ,
list_modules.nl as titel,
list_modules.basic as totaal,
factuur_kop.id as idkop
FROM
factuur_kop
Inner Join tbl_customers ON tbl_customers.id = factuur_kop.id_customer
Inner Join tbl_administrations ON tbl_administrations.id_customer = tbl_customers.id
Inner Join lnk_administrations_modules ON tbl_administrations.id = lnk_administrations_modules.id_administration
Inner Join list_modules ON lnk_administrations_modules.id_module = list_modules.id
WHERE
factuur_kop.id_customer = ".$valueclient."
AND
list_modules.nl NOT LIKE 'Administratie'
AND
list_modules.nl NOT LIKE 'Gebruiker'
GROUP BY
list_modules.id
";
?>
$vulRegels = "SELECT
factuur_kop.id_customer ,
list_modules.nl as titel,
list_modules.basic as totaal,
factuur_kop.id as idkop
FROM
factuur_kop
Inner Join tbl_customers ON tbl_customers.id = factuur_kop.id_customer
Inner Join tbl_administrations ON tbl_administrations.id_customer = tbl_customers.id
Inner Join lnk_administrations_modules ON tbl_administrations.id = lnk_administrations_modules.id_administration
Inner Join list_modules ON lnk_administrations_modules.id_module = list_modules.id
WHERE
factuur_kop.id_customer = ".$valueclient."
AND
list_modules.nl NOT LIKE 'Administratie'
AND
list_modules.nl NOT LIKE 'Gebruiker'
GROUP BY
list_modules.id
";
?>
$valueclient is een array met nu 3 waardes erin.
Ik zou graag als output zoiets willen:
idkop - titel - totaal
| 1 | Module1 | 15,00 |
| 1 | Module2 | 15,00 |
| 1 | Module3 | 15,00 |
| 2 | Module1 | 15,00 |
| 2 | Module2 | 15,00 |
| 2 | Module3 | 15,00 |
Aan de clients zitten administraties vast, en door middel van deze administraties kun je de modules selecteren,
echter wil ik nu de modules gesorteerd op klant, en niet als administratie.
Ik krijg nu namelijk zoiets:
idkop - titel - totaal
| 1 | Module1 | 15,00 |
| 1 | Module2 | 15,00 |
| 1 | Module2 | 15,00 |
| 1 | Module3 | 15,00 |
| 1 | Module3 | 15,00 |
| 1 | Module3 | 15,00 |
| 2 | Module1 | 15,00 |
| 2 | Module1 | 15,00 |
| 2 | Module1 | 15,00 |
Hij telt dus ook nog eens de modules per administratie er bij op.
Gewijzigd op 06/02/2012 11:55:43 door M H
Gesponsorde koppelingen:
Kan je je laten zien hoe je tabbelen eruit zien, dat zal je verhaal misschien wat duidelijker zijn.
Factuur_kop met id,datum,id_customer en id_administration
tbl_customer met id,name,street,nr,nraddon etc.
tbl_administration met id,name,street,nr,nraddon etc.
lnk_administration_modules met id,id_administration,id_module en startdate
list_modules met id,nl,en,id_parent,folder etc.
tbl_customer met id,name,street,nr,nraddon etc.
tbl_administration met id,name,street,nr,nraddon etc.
lnk_administration_modules met id,id_administration,id_module en startdate
list_modules met id,nl,en,id_parent,folder etc.
In elk geval kan je geen GROUP BY gebruiken als er geen aggregate functie (zoals MAX, SUM, COUNT etc) wordt gebruikt.
Hoezo niet?
Dat wist ik niet namelijk, heb wel vaker GROUP BY gebruikt zonder de functies MAX,SUM, COUNT oid.
Dat wist ik niet namelijk, heb wel vaker GROUP BY gebruikt zonder de functies MAX,SUM, COUNT oid.



