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 27/10/2011, 10h37   #1
Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2009
Messages : 134
Points : 42
Points : 42
Par défaut 2 requêtes => 1

Bonjour,

J'ai une table comme ceci :

Code :
CODE ARTICLE|CODE LANGUE|DESCRIPTION
Je fais ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT 
 
	a.C_ARTIC AS code,
	MAX(dlg.DESI_LANG) AS designation_longue_FR 
 
FROM ARTIC a 
 
FULL OUTER JOIN DESLG dlg 
	ON dlg.T_ARTIC = a.T_ARTIC  	
 
WHERE dlg.C_LANGUE = 'FRA'
 
GROUP BY a.C_ARTIC
Et ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT 
 
	a.C_ARTIC AS code,
	MAX(dlg.DESI_LANG) AS designation_longue_EN 
 
FROM ARTIC a 
 
FULL OUTER JOIN DESLG dlg 
	ON dlg.T_ARTIC = a.T_ARTIC  	
 
WHERE dlg.C_LANGUE = 'ANG'
 
GROUP BY a.C_ARTIC
Je voudrais rassembler les 2 requêtes en 1 mais je bloque...

(C'est une partie d'une requête bien plus grande c'est pourquoi je souhaite ne faire l'export qu'en une partie, pas en x.)

Auriez vous une idée pour que je me retrouve avec un tableau :

Code :
Code article|Description EN|Description FR
Merci de votre aide.
fhmayn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 10h58   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 641
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 641
Points : 2 634
Points : 2 634
bonjour,

je ne comprends pas bien l'utilité du full outer join dans votre cas.


Ceci étant dit :
Code :
1
2
3
4
5
6
7
8
9
 
SELECT a.C_ARTIC AS code,
MAX(dlg_fr.DESI_LANG) AS designation_longue_FR,
MAX(dlg_en.DESI_LANG) AS designation_longue_EN
 
FROM ARTIC a 
LEFT OUTER JOIN DESLG dlg_fr ON dlg_fr.T_ARTIC = a.T_ARTIC AND ddlg_fr.C_LANGUE = 'FRA'
LEFT OUTER JOIN DESLG dlg_en ON dlg_en.T_ARTIC = a.T_ARTIC AND ddlg_en.C_LANGUE = 'ANG'
GROUP BY a.C_ARTIC
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 11h00   #3
Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2009
Messages : 134
Points : 42
Points : 42
Ah oui... merci pour la solution.

Euh le full outer c'est rapport au reste de la requête, j'ai pas tout mis pour ne pas remplir la page inutilement.

Merci bien en tout cas
fhmayn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h42   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
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 686
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Avec une seule jointure :
Code :
1
2
3
4
5
6
7
8
  SELECT a.C_ARTIC AS code,
         MAX(CASE dlg.C_LANGUE WHEN 'FRA' THEN dlg.DESI_LANG END) AS designation_longue_FR,
         MAX(CASE dlg.C_LANGUE WHEN 'ANG' THEN dlg.DESI_LANG END) AS designation_longue_EN
    FROM ARTIC a 
         LEFT OUTER JOIN DESLG dlg
           ON dlg.T_ARTIC = a.T_ARTIC
          AND dlg.C_LANGUE IN ('FRA', 'ANG')
GROUP BY a.C_ARTIC;
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h43   #5
Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2009
Messages : 134
Points : 42
Points : 42
Merci à toi aussi!
fhmayn 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 05h38.


 
 
 
 
Partenaires

Hébergement Web