Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/04/2011, 12h11   #1
Membre éclairé
 
Avatar de keitaro_bzh
 
Homme Cédric
Technicien Help Desk
Inscription : juin 2009
Messages : 259
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Technicien Help Desk
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2009
Messages : 259
Points : 364
Points : 364
Par défaut Résultat en colonne

Bonjour à tous,

Voila, j'ai une demande qui a surement été posé, mais je sais pas comment l'exprimer dans ma recherche, donc pardonnez d'avance si la demande est double.

Voila, je voudrais créer une requète qui me ramène une liste de clients avec le montant facturé par année. En gros, la requète serait

Code :
1
2
3
4
5
6
7
8
9
10
SELECT TABLE_CLIENT.CLIENT,
TABLE_PERIODE.ANNEE,
TABLE_FACTURE.TTC
FROM TABLE_CLIENT,
TABLE_PERIODE,
TABLE_FACTURE
WHERE
TABLE_FACTURE.ID_CLIENT = TABLE_CLIENT.ID_CLIENT
AND
TABLE_FACTURE.ID_PERIODE = TABLE_PERIODe.ID_PERIO
Ce code fonctionne bien mais me retourne le résultat sous la forme suivante

CLIENT / ANNEE / TTC
keitaro_bzh / 2011 / 50
keitaro_bzh / 2010 / 45
keitaro_bzh / 2011 / 40

Mais je voudrais pouvoir avoir le résultat sur une seul ligne, genre

CLIENT / 2011 / 2010 /2009
keitaro_bzh / 50 / 45 / 40

Mais je sais pas comment faire, ni si cela est réalisable...

Merci d'avance pour vos réponses
__________________
Question existentielle:
"Pourquoi les portes des établissements ouverts 24h/24 ont-ils des serrures... O_o?"
keitaro_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 14h08   #2
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
La fonction PIVOT n'existe pas dans MySQL, il va falloir que tu fasses quelque chose comme cela :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
SELECT TABLE_CLIENT.CLIENT,
SUM(DECODE(TABLE_PERIODE.ANNEE, 2011, TABLE_FACTURE.TTC, 0)) 2011,
SUM(DECODE(TABLE_PERIODE.ANNEE, 2010, TABLE_FACTURE.TTC, 0)) 2010,
SUM(DECODE(TABLE_PERIODE.ANNEE, 2009, TABLE_FACTURE.TTC, 0)) 2009
FROM TABLE_CLIENT,
TABLE_PERIODE,
TABLE_FACTURE
WHERE
TABLE_FACTURE.ID_CLIENT = TABLE_CLIENT.ID_CLIENT
AND
TABLE_FACTURE.ID_PERIODE = TABLE_PERIODE.ID_PERIODE
GROUP BY TABLE_CLIENT.CLIENT
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 14h30   #3
Membre éclairé
 
Avatar de keitaro_bzh
 
Homme Cédric
Technicien Help Desk
Inscription : juin 2009
Messages : 259
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Technicien Help Desk
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2009
Messages : 259
Points : 364
Points : 364
Super, merci pour ta réponse, je vais tester de suite.

Cependant, si je comprends bien, je vais pas pouvoir mettre les années en dynamique? Il faut que je crée les colonnes manuellement?
__________________
Question existentielle:
"Pourquoi les portes des établissements ouverts 24h/24 ont-ils des serrures... O_o?"
keitaro_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 14h36   #4
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Pour mettre les années en dynamique, tu dois pouvoir le faire en faisant une procédure... mais cela reste à voir.
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 15h31   #5
Membre éclairé
 
Avatar de keitaro_bzh
 
Homme Cédric
Technicien Help Desk
Inscription : juin 2009
Messages : 259
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Technicien Help Desk
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2009
Messages : 259
Points : 364
Points : 364
Arf, tu me parles correct stp, procédure toi même..

Non plus sérieux, tu sais, hormis sorti de mes SELECT et LEFT OUTER JOIN, je suis pas un as de la requète.

En tout cas, merci, j'ai réussi à me dépatouiller grace à ton aide.

Cependant le code que j'ai au final est:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
SELECT TABLE_CLIENT.CLIENT,
SUM(IF(TABLE_PERIODE.ANNEE = '2011', TABLE_FACTURE.TTC, 0)) "2011",
SUM(IF(TABLE_PERIODE.ANNEE = '2010', TABLE_FACTURE.TTC, 0)) "2010",
SUM(IF(TABLE_PERIODE.ANNEE = '2009', TABLE_FACTURE.TTC, 0)) "2009"
FROM TABLE_CLIENT,
TABLE_PERIODE,
TABLE_FACTURE
WHERE
TABLE_FACTURE.ID_CLIENT = TABLE_CLIENT.ID_CLIENT
AND
TABLE_FACTURE.ID_PERIODE = TABLE_PERIODE.ID_PERIODE
GROUP BY TABLE_CLIENT.CLIENT
j'ai pas réussi à faire fonctionner la fonction decode
__________________
Question existentielle:
"Pourquoi les portes des établissements ouverts 24h/24 ont-ils des serrures... O_o?"
keitaro_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 15h35   #6
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Autant pour moi j'ai confondu avec Oracle... mais tu as réussi à trouver la fonction qui correspondait... Ouf !
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 16h21   #7
Membre éclairé
 
Avatar de keitaro_bzh
 
Homme Cédric
Technicien Help Desk
Inscription : juin 2009
Messages : 259
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Technicien Help Desk
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2009
Messages : 259
Points : 364
Points : 364
ôracle ô désespoir... désolé, c'est sorti tout seul.

Yes, tu m'as bien mis sur la piste. encore merci
__________________
Question existentielle:
"Pourquoi les portes des établissements ouverts 24h/24 ont-ils des serrures... O_o?"
keitaro_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h08.


 
 
 
 
Partenaires

Hébergement Web