Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
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 25/01/2011, 16h46   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 12
Points : 3
Points : 3
Par défaut Récupérer données sur une seule ligne

Bonjour à tous,
Voici mon pb du jour :
J'ai une table CA qui contient quelque chose dans le genre :

Produit Année CA
tomates 2006 78,9
tomates 2007 12,6
patate 2005 33,5
patate 2006 45,7
patate 2007 56,2
carottes 2005 28,9
carottes 2006 78,2
carottes 2007 66,9

A partir de ça, je dois récupérer :

Produit CA2005 CA2006 CA2007
Tomate 0 78,9 12,6
patate 33,5 45,7 56,2
carottes 28,9 78,2 66,9

J'arrive à avoir ... presque ce que je veux en faisant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
SELECT c5.produit, c5.ca AS ca2005, c6.ca AS ca2006, c7.ca AS ca2007
FROM ca c5
LEFT OUTER JOIN ca c6
ON
c5.produit=c6.produit AND
c6.année=2006
LEFT OUTER JOIN ca c7
ON
c5.produit=c7.produit AND
c7.année=2007
WHERE
AND c5.année=2005
le hic, c'est que j'ai aussi des tomates sans CA pour l'année 2005, mais avec du CA pour 2006 et 2007 ... du coup, il ne m'affiche pas la ligne tomate.
Petite précision, je suis sous MySQL
Merci d'avance pour votre aide.
ximun974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 16h56   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Faites une recherche sur le mot clef PIVOT sur ce forum, vous devriez trouver votre bonheur.
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h07   #3
Invité de passage
 
Inscription : décembre 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 12
Points : 3
Points : 3
Merci Waldar, mais je ne crois pas que pivot fonctionne sous MySQL.
Je regarde quand même ...peut être une piste
ximun974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h15   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Effectivement la commande n'existe pas sous MySQL, mais la manipulation que vous voulez faire s'appelle aussi un pivot, donc la recherche devrait remonter à boire et à manger !
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h36   #5
Invité de passage
 
Inscription : décembre 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 12
Points : 3
Points : 3
Merci Waldar
J'ai effectivement trouvé ce que je cherchais
...j'ai fait ça avec des cases.
Et oui .. un SGBD n'est pas fait pour ça !!!
merci encore
ximun974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 18h30   #6
Membre expérimenté
 
Avatar de neilbgr
 
Inscription : août 2004
Messages : 584
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 584
Points : 589
Points : 589
Citation:
Envoyé par ximun974 Voir le message
Et oui .. un SGBD n'est pas fait pour ça !!!
merci encore
Effectivement... en lisant cet article on peut considérer que le souhait est dans la catégorie "cosmétique".
Autrement dit, il faut que la partie affichage se charge de présenter les données comme on veut sur la base de ce que le SGBDR nous donne comme résultat.
__________________
"Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
"Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
"Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry
neilbgr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 07h38   #7
Invité de passage
 
Inscription : décembre 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 12
Points : 3
Points : 3
... je sais ... mais l'outil de visualisation que j'utilise est très pratique ... mais pauvre en fonctionnalités. C'est pourquoi, des fois, on est bien obligé de s'arranger pour avoir ce que l'on veut! Et le SQL, c'est gratuit!
ximun974 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 03h07.


 
 
 
 
Partenaires

Hébergement Web