Een hoop gehad aan het leesvoer uit de FAQ om te begrijpen hoe een groupby nu echt werkt 
Programming FAQ - SQL

Die code, wil ik vervolgens in het volgende ouput format krijgen (voor een highchart):
Nu probeer ik via een while($row = mysqli_fetch_array($result) hier doorheen te loopen, maar ik loop tegen problemen aan:
Voor elke name (bijv sold) is zowel de volgorde als daadwerkelijk resultaat belangrijk. Zowel customer als prospect heeft een sold value, dus in volgorde wil ik deze 2 loopen. Maar als prospect, die na customer komt qua sortingsvolgorde, een negotation waarde heeft, maar customer niet, moet customer eerst een nul waarde krijgen. Anders klopt de grafiek output niet.
Nu loop ik compleet vast met mijn ondertussen nested while loopjes, maar ik vermoed dat ik aan het begin al iets verkeerd aanpak (mijn query) en dat ik nooit met deze query de correcte formating ga krijgen.
Waar ik tot nu toe mee bezig was qua loop:
Output
Kan iemand mij een tip geven hoe ik dit het beste kan aanpakken
?
Programming FAQ - SQL
PHP:
Daaruit heb ik deze SQL gemaakt (volgens mij op de manier waarop group by moet werken), die het volgende tabelletje uitspuugt:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| $sql = " SELECT dt_customertypes.TypeName, dt_salesstatus.StatusDescription, SUM(dt_sales.Turnover) FROM dt_sales LEFT JOIN dt_salesstatus ON dt_sales.StatusID = dt_salesstatus.StatusID LEFT JOIN dt_customers ON dt_sales.CustomerID = dt_customers.CustomerID LEFT JOIN dt_customertypes ON dt_customers.CustomerTypeID = dt_customertypes.CustomerTypeID GROUP BY dt_salesstatus.StatusDescription, dt_customertypes.TypeName "; |

Die code, wil ik vervolgens in het volgende ouput format krijgen (voor een highchart):
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
| name: 'Lost', data: [7777] }, { name: 'Negotation', data: [0, 15000] }, { name: 'Proposal', data: [185000] }, { name: 'Sold', data: [143500, 9] |
Nu probeer ik via een while($row = mysqli_fetch_array($result) hier doorheen te loopen, maar ik loop tegen problemen aan:
Voor elke name (bijv sold) is zowel de volgorde als daadwerkelijk resultaat belangrijk. Zowel customer als prospect heeft een sold value, dus in volgorde wil ik deze 2 loopen. Maar als prospect, die na customer komt qua sortingsvolgorde, een negotation waarde heeft, maar customer niet, moet customer eerst een nul waarde krijgen. Anders klopt de grafiek output niet.
Nu loop ik compleet vast met mijn ondertussen nested while loopjes, maar ik vermoed dat ik aan het begin al iets verkeerd aanpak (mijn query) en dat ik nooit met deze query de correcte formating ga krijgen.
Waar ik tot nu toe mee bezig was qua loop:
PHP:
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
28
29
30
31
32
| while ($row = mysqli_fetch_array( $Segments)){ //$Segments bevat, in dit voorbeeld, de 2 unieke segmenten, customers en prospects. Dit heb ik (volgens mijn logica :P ) nodig om 2 keer door de segmenten te loopen while ($row = mysqli_fetch_array( $SalesStatus)){ if (empty($LastStatus) OR $LastStatus != $row['StatusDescription']) { echo 'name: \''.$row['StatusDescription'].'\', '; } echo '<br>'; if (empty($LastStatus) OR $LastStatus != $row['StatusDescription']) { echo 'data: ['; } echo $row[2]; if (empty($LastStatus) OR $LastStatus != $row['StatusDescription']) { echo '] '; } echo '<br>'; if (empty($LastStatus) OR $LastStatus != $row['StatusDescription']) { echo '}, {'; } echo '<br>'; $LastStatus = $row['StatusDescription']; } } |
Output
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| name: 'Lost',
data: [7777]
}, {
name: 'Negotiation',
data: [15000]
}, {
name: 'Proposal',
data: [185000]
}, {
name: 'Sold',
data: [143500]
}, {
9 |
Kan iemand mij een tip geven hoe ik dit het beste kan aanpakken