Trop de résultats...

Eléphanteau du PHP | 34 Messages

08 nov. 2011, 18:15

Bonjour,

J'imagine que c'est une question récurrente, mais vu que je suis débutant je ne sais pas où vraiment chercher...merci d'être indulgent..:-)

J'ai deux tables : commande et client.

table commande comporte id_com, id_client, prix, date_com

table client comporte id_client, client, lieudit

J'aimerai sortir toutes les commandes d'un mois pour un client particulier. Pour le moment, ma requête ressemble à ça:

select commande.id_com, prix, date_com from commande, client
where client='leclerc'
and date_format(date_com,'%Y')='2011'
and date_format(date_com,'%m')='10'

Cette requête me donne un résultat mais trop gros. Si j'ai par exemple 22 magasins leclerc (un à Paris, un à Marseille, etc..., c'est le champ 'lieudit'), je vais avoir 22 fois la commande avec id_com=321, 22 fois celle avec id_com=322 etc... Le but est de faire la somme des prix pour tous les lieudit de leclerc sur un mois. Comment faire pour éviter cette répétition ? (Je pourrais diviser le résultat par 22, mais ce n'est pas très joli joli..)

Merci d'avance,
boobz

ViPHP
ViPHP | 2577 Messages

09 nov. 2011, 15:34

Dans la clause WHERE, il faut indique comment se fait le lien entre les 2 tables.

En l'occurence :
where client='leclerc'
and date_format(date_com,'%Y')='2011'
and date_format(date_com,'%m')='10'
and commande.id_client = client.id_client

Eléphanteau du PHP | 34 Messages

09 nov. 2011, 17:16

Merci !

Eléphanteau du PHP | 34 Messages

09 nov. 2011, 18:06

J'ai encore un problème...

Ma requête:

Code : Tout sélectionner

SELECT prix,lieudit FROM tbl_commande, tbl_client WHERE client = 'leclerc' AND date_format( date_com, '%m' ) = '06' AND date_format( date_com, '%Y' ) = '2011' and tbl_commande.id_client=tbl_client.id_client order by lieudit
Me sort :

prix lieudit
12 A
24 A
22 A
32 B
92 B
52 M
23 L
12 L
76 L


etc... J'aimerai obtenir la somme pour chaque lieudit :

prix lieudit
86 A
124 B
52 M
111 L


Comment faire ?

Merci d'avance

ViPHP
ViPHP | 5462 Messages

09 nov. 2011, 19:36

avec la fonction SUM + GROUP BY en SQL