Page 1 sur 1

"Group By" et tableau

Posté : 16 août 2014, 17:47
par kim59
Bonjour,

J'ai une liste de ventes que je voudrai ventiler dans un tableau.
SELECT SUM(total),date,produit,vendeur FROM sales  GROUP BY date,produit,vendeur

Je voudrais avoir le tableau ci-dessous :

date                   somme_produit1       Somme_produit2      somme_produit3   vendeur     somme_total 
2014-01-01              122 €                   12 €                92 €         Albert        226 € 
2014-01-02              112 €                   17 €                99 €         Albert        228 € 

Comment réaliser cela ?
Merci d'avance.

Re: "Group By" et tableau

Posté : 16 août 2014, 17:54
par toytoy
Tu pourrais nous donner le schéma de ta table s'il te plaît ? Sa aiderait grandement ^^

Re: "Group By" et tableau

Posté : 16 août 2014, 18:13
par kim59
CREATE TABLE `ventes` (
  `id` int(11) NOT NULL,
  `date` date NOT NULL,
  `vendeur` text NOT NULL,
  `produit` text NOT NULL,
  `total` text NOT NULL,
) 


Re: "Group By" et tableau

Posté : 16 août 2014, 19:02
par sirakawa
Bjr,
Erreur de conception:
Il faut une table produits avec leur description et un id du produit unique et clef
une table vendeurs avec entre autres unid de vendeur unique et clef
une table ventes :
date, quantite, id_du_produit, id_du_vendeur

Par ailleurs à tout hasard, il faut abandonner mysql au profit de mysqli ou pdo.

Re: "Group By" et tableau

Posté : 16 août 2014, 20:31
par toytoy
et pense à typer correctement tes attributs, par exemple le prix sera un int, le nom du produit un varchar...

Re: "Group By" et tableau

Posté : 17 août 2014, 08:56
par sirakawa
et pense à typer correctement tes attributs, par exemple le prix sera un int, le nom du produit un varchar...
Le prix : decimal(5,2) 5 longuuer totale 2 nombre de décimales. Assure une précision absolue exploitable par les fonctions BCD de PHP

Re: "Group By" et tableau

Posté : 17 août 2014, 14:00
par kim59
Merci pour vos réponses.
Malheureusement, je n'ai pas le choix. Je récupère ces données de ventes via un webservice.
J'ai donc une seul table sur laquelle je doit tirer un certains nombre de stats.

Re: "Group By" et tableau

Posté : 17 août 2014, 14:38
par sirakawa
Supposant que tu es connecté à ta base de données
$mysqli = new mysqli("example.com", "user", "password", "database");

$requete ="SELECT SUM(total),date,produit,vendeur FROM sales  GROUP BY date,produit,vendeur";
$res = $mysqli->query ($requete);
$res->data_seek(0);
while ($row = $res->fetch_assoc()) {
    pint_r($row); print "\n";
}
Ce n'est pas la solution complète mais ça dervait t'avancer un peu

Re: "Group By" et tableau

Posté : 17 août 2014, 15:05
par kim59
while ($row = $res->fetch_assoc()) {
  
   $produit[]  = $row['produit'] ;
    $date  = $row['date'] ;
    $somme = $row['SUM(somme)'] ;
    $somme = number_format($somme,2);
    
    
    echo '<tr>
  <td align="center">'.$date.'</td>
 <td align="center">'.$produit[0].'</td>
<td align="center">'.$produit[1].'</td>
<td align="center">'.$produit[2].'</td>
<td align="center">'.$produit[3].'</td>
 <td align="center"><B> '.$somme.' </B>Euros</td>   
 
</tr>
    
 ';   
J'ai besoin d'avoir une seul ligne avec la somme par produit.
Je suis sur la bonne route ?

Re: "Group By" et tableau

Posté : 17 août 2014, 16:18
par sirakawa
je pense que oui...