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...