Requetes sql

Fermé
m_makhoukh Messages postés 114 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 juin 2005 - 17 mai 2005 à 16:39
 kub - 2 sept. 2007 à 18:12
Bonjour tt le monde,
j'ai besoin de faire des requetes sous mysql pour afficher un tootal par trimestre avant je le faisait sous access avec les requetees analyse croisee maios sous mysql je ne sais pas comment surout que je veux avoir cette forme:

code_client trim1_total trim2_total trim3_total trim4_total

c'ets a dire dans la meme table.

merci de me repondre.

11 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
17 mai 2005 à 16:45
Ben pour ca faudra commencer par nous mettre la desciption de tes tables SQL , c'est à dire les infos que tu stock sur tes clients, etc.. pour avoir un schéma. Ensuite faudra faire une base (mais je suppose en fait qu'elle est déjà faite si tu demande un conseil sur une requete ?! ).
En suite pon pourra peut etre t'aider.

++
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
17 mai 2005 à 16:55
Salut,
De fait il manque des infos...
Sinon tu sais si MySQL supporte les requêtes encastrées?

0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
17 mai 2005 à 17:09
il ne me semble pas..
0
m_makhoukh Messages postés 114 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 juin 2005 2
17 mai 2005 à 17:01
merci,
j'ai une base commandes.
j'utilise deux tables pour calculer le total commande par clients:
la table comandes:
les champs sont les suivants:
N_commande,code client,date_commande,Alivreravant,dateenvoi
les champs dela tble details comandes:
N_commande,Ref-produit,Prix unitaire,quantité , Remise

et je veux calculer la somme suivante:
Sum(détails_commandes.Prix_unitaire*Quantité*(1-Remise) ) AS TOTAL_CLIENTtrim1

par client(code_client)
mais je veux avoir un tableau qui resume tt les trimestre ie par exple:

code_client trim1 trim2 trim3 trim4
afaha 25000 14555 1212 12212

pour l'instant j'ai fais des requetes pour chaque trimstre mais je veux une table qui me resume ttça.

par exemple j'ai utilise cette requetes pour le trim11997

SELECT commandes.Code_client,commandes.Date_commande, Sum(détails_commandes.Prix_unitaire*Quantité*(1-Remise) ) AS TOTAL_CLIENTtrim1
FROM commandes INNER JOIN détails_commandes ON commandes.N_commande = détails_commandes.N_commande
WHERE (Year(commandes.date_commande)=1997)
and
commandes.date_commande BETWEEN ' 1997-01-01' and '1997-03-31'

GROUP BY commandes.Code_client,Year(commandes.Date_commande)
ORDER BY commandes.Date_commande;


j'espere que j'etais claire sinon demandez moi.

merci bien.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
17 mai 2005 à 17:20
Et tu veux faire ca en HTML / PHP ? c'est bien ca ?
0
m_makhoukh Messages postés 114 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 juin 2005 2
17 mai 2005 à 17:13
la version que j'ai de mysql ests la 4.0 et elle ne supporte les sous requetes ,ça aussi est un pb de plus et je ne sais pas coment faire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
m_makhoukh Messages postés 114 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 juin 2005 2
17 mai 2005 à 17:22
non c'est une simple requetes sql.
apres je vais exporter la table.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
17 mai 2005 à 17:26
a ouai, ba la je peux pas trop t'aider alors...

je sais pas trop comment ca marche avec des requetes simple sur une base... un traitement PHP oui, mais la ?!

0
m_makhoukh Messages postés 114 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 juin 2005 2
17 mai 2005 à 17:33
vous pourriez me dire on peut faire avec php mais brievement car moi je ne connais pas le php.

sinon tu connais comment concatener deux tables horizotalement ie l'equivalent de union.

merci.
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
18 mai 2005 à 08:21
Salut vous deux...
Sais tu si tu peux sauvegarder ta requête dans une table temporaire/dans une vue en MySQL? Ca serait la solution la plus simple encore...
Sinon tu veux voir le résultat dans quoi? Tu peux aussi faire ça de manière programmatique après...
0
m_makhoukh Messages postés 114 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 juin 2005 2
18 mai 2005 à 09:46
est ce que tu peux etre plus clair.
j'ai stocke les requetes ds des tables :
j'ai
table1: requete_trim1 qui acomme champs: Code_client date_commande total-trim2

table1: requete_trim1 qui acomme champs: Code_client date_commande total-trim3

table1: requete_trim1 qui acomme champs: Code_client date_commande total-trim4

table1: requete_trim1 qui acomme champs: Code_client date_commande total-trim5



ce je veux c'ets d'avoir une seul table avec:

Code_client date_commande total-trim1 total-trim2 total-trim3 total-trim4
en sachant qu'il n'ont pas le meme nbre de lignes .

merci de me repondre car je ne sais pas comment faire.
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
18 mai 2005 à 09:58
Salut
Je suppose que tu as
table1, 2 3 et 4, tu as juste mis table1 :o)

Tu fais alors
SELECT table1.CodeClient, table1.totalTrim1, table2.totalTrim2,table3.TotalTrim3,table4.TotalTrim4 
FROM table1,table2,table3,table4 
WHERE table1.CodeClient=table2.CodeClient
AND table1.CodeClient=table3.CodeClient
AND table1.CodeClient=table4.CodeClient;


Ca devrait marcher :o)
0
m_makhoukh Messages postés 114 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 juin 2005 2
18 mai 2005 à 10:35
en fait ça doit marcher Mais le pb c'est que puisque se sont des requetes ils ont pas les memes nbre de code client(qui va me servir à faire la relation entre les tables)car quand des que la somme total est 0 il n'affiche pas l'enregistrement correspondant à ce client.
pour etre plus clair :j'ai 91 client des que je fais les requetes sur e trimestres:
trimestre1 il,me sort 54 clients pour les autres ils ontla somme nulle
trimestre2:54 clients
trimestre3:56
trmestre4:61
doncqd je les mets en relations il ya pas tt les clients.

donc comment faire pour l'obliger à sortir tt les clients(91) meme si leur somme est nulles(ie total_trim1 ou total_trim2ou..)

merci beucoup.

j'espere que j'etais clair sinon demendez moi.
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
18 mai 2005 à 12:56
Avec un JOIN tu devrais pouvoir résoudre le problème...
0
m_makhoukh Messages postés 114 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 17 juin 2005 2
18 mai 2005 à 18:16
merci j'ai reussi mais s'etait un casse tete.
merci bien.
0
J'adore quand on a la solution aux problèmes.

Meme si tu trouves tout seul la solution, tu pourrais la poster crevard.
0