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/2012, 16h21   #1
Membre à l'essai
 
Avatar de Jefty
 
Inscription : décembre 2009
Messages : 138
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 138
Points : 24
Points : 24
Par défaut Aide sur une requête

Bonjour à tous,

J'ai besoin d'aide pour une requête afin de remplir une zone répétée sous WebDev.

J'utilise actuellement Wamp pour faire des test.
J'ai donc ma BDD que voici:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CREATE DATABASE meuh;
USE meuh;
 
CREATE TABLE Prestation
(
idprest int NOT NULL,
abr varchar(30) NOT NULL,
quantite int NOT NULL,
datepr date NOT NULL,
ligne int NOT NULL,
 
CONSTRAINT PK_Prestation PRIMARY KEY (idprest)
) ENGINE = InnoDB;
 
 
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (1, "lol", 12, 23/01/2012, 1);
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (2, "lol", 24, 23/01/2012, 2);
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (3, "lol", 36, 23/01/2012, 3);
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (4, "lol", 48, 23/01/2012, 4);
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (5, "lol", 60, 23/01/2012, 5);
 
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (6, "gneuh", 4, 23/01/2012, 1);
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (7, "gneuh", 8, 23/01/2012, 2);
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (8, "gneuh", 16, 23/01/2012, 3);
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (9, "gneuh", 36, 23/01/2012, 4);
INSERT INTO Prestation (idprest, abr, quantite, datepr, ligne) VALUES (10, "gneuh", 64, 23/01/2012, 5);

Je souhaiterais obtenir un tableau comme ceci:

abr | quantite 1 | quantite 2 | quantite 3 | quantite 4 | quantite 5

Je veux donc un retour d'une abréviation avec toute les quantités lui correspondant, en une ligne. Ça autant de fois qu'il y a d’abréviation différentes.

J'ai test avec un group by, mais je ne retourne que la quantité 1.

Merci d'avance pour toute aide.

Jefty
Jefty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 16h25   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 669
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 669
Points : 2 680
Points : 2 680
bonjour,

Pour une abréviation donnée combien de lignes peut-il y avoir ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 16h27   #3
Membre à l'essai
 
Avatar de Jefty
 
Inscription : décembre 2009
Messages : 138
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 138
Points : 24
Points : 24
Rapide comme retour.

Une seule linge par abréviation.
Jefty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 16h30   #4
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 669
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 669
Points : 2 680
Points : 2 680
Votre jeux de donnée ne correspond pas à ce que vous dites.
Là vous avez 5 lignes distinct par abréviation donnée.

quelle est le max de ligne possible ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 16h33   #5
Membre à l'essai
 
Avatar de Jefty
 
Inscription : décembre 2009
Messages : 138
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 138
Points : 24
Points : 24
Ah oui désolé je comprend le problème.
En faite les lignes déclaré dans la BDD était juste un repère que j'avais pour différencié l'ordre des quantité.
Mais ça ne rentre pas dans ma demande.
Je désire belle et bien qu'une seule ligne pour une abréviation avec toutes ses quantités. En faite c'est pour un order by les "ligne" de la BDD.

Désolé pour le doute
Jefty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 16h38   #6
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 669
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 669
Points : 2 680
Points : 2 680
Vous ne repondez toujours pas à la question.

Reprenons en simplifiant votre problème :
Code :
1
2
3
4
5
6
 
Abr     QT      ordreQt
----------------------
1        50         1
1        40         2
1        60         3

Ici, j'ai donc 3 quantités différentes pour une même abréviation (ordreQt est mappé via la colone "ligne" chez vous).


Vous demandez une requête qui puissent mettre sur une ligne les différentes quantités associées à une même abréviation.

Ma question est donc :

Combien de quantité différente, au maximum, peut-on avoir pour une même abréviation ? 5 ? plus ? moins ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 16h40   #7
Membre à l'essai
 
Avatar de Jefty
 
Inscription : décembre 2009
Messages : 138
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 138
Points : 24
Points : 24
Autant pour moi,

Le maximum est 5.
Jefty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 16h49   #8
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 669
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 669
Points : 2 680
Points : 2 680
Dans ce cas le group by était une bonne idée, un exemple à adapter :

Code :
1
2
3
4
5
6
7
 
SELECT col_aggregation,
max(case when ma_cond = 1 then ma_valeur end),
max(case when ma_cond = 2 then ma_valeur end),
.....
FROM ma_table
GROUP BY col_aggregation
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 25/01/2012, 17h09   #9
Membre à l'essai
 
Avatar de Jefty
 
Inscription : décembre 2009
Messages : 138
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 138
Points : 24
Points : 24
Merci c'est exactement ce que je voulais.

Jefty
Jefty 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 00h44.


 
 
 
 
Partenaires

Hébergement Web