Requetes SQL : Même table (criteres différents) sur MSQUERY
Jean
-
cyril1982 Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
cyril1982 Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je possède une base SQL avec une table A et B, Une colonne A1 de A et B1 de B. (Une jointure est faite entre B1 et A2)
Seulement dans MSQUERY, je veux afficher :
Une colonne B1 avec en critères A1 = 1
et une autre colonne B1 avec en critère A1 = 0
J'ai cherché et les fonction UNION et INTERSECT ne passent pas car ça "superpose" au niveau des lignes et non des colonnes.
Pour l'instant j'ai ça ...
SELECT B1 FROM B WHERE B1=A2 AND A1=0
SELECT B1 FROM B WHERE B1=A2 AND A2=0
Comment faire apparaitre ces deux requêtes cote à cote ?
Merci d'avance,
Je possède une base SQL avec une table A et B, Une colonne A1 de A et B1 de B. (Une jointure est faite entre B1 et A2)
Seulement dans MSQUERY, je veux afficher :
Une colonne B1 avec en critères A1 = 1
et une autre colonne B1 avec en critère A1 = 0
J'ai cherché et les fonction UNION et INTERSECT ne passent pas car ça "superpose" au niveau des lignes et non des colonnes.
Pour l'instant j'ai ça ...
SELECT B1 FROM B WHERE B1=A2 AND A1=0
SELECT B1 FROM B WHERE B1=A2 AND A2=0
Comment faire apparaitre ces deux requêtes cote à cote ?
Merci d'avance,
A voir également:
- Requetes SQL : Même table (criteres différents) sur MSQUERY
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Jointure sql ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
6 réponses
Bonjour,
Tu peux utiliser l'instruction conditionnelle case couplée avec max :
La clause where (A1 = 0 or A2 = 0) permet de filtrer sur tes deux lignes.
La fonction d'agrégat Max permet de ne te retourner qu'une seule ligne.
Enfin, le case when permet de choisir la ligne à afficher selon la colonne (Retourne null pour l'autre ligne, couplé avec max cela va te retourner la bonne valeur).
J'espère avoir été clair.
Tu peux utiliser l'instruction conditionnelle case couplée avec max :
SELECT max(case when A1 = 0 then B1 else null end), max(case when A2 = 0 then B1 else null end) FROM B WHERE B1=A2 AND (A1=0 or A2=0)
La clause where (A1 = 0 or A2 = 0) permet de filtrer sur tes deux lignes.
La fonction d'agrégat Max permet de ne te retourner qu'une seule ligne.
Enfin, le case when permet de choisir la ligne à afficher selon la colonne (Retourne null pour l'autre ligne, couplé avec max cela va te retourner la bonne valeur).
J'espère avoir été clair.
BOnjour,
Désolé je n'avais pas vu votre réponse,
J'ai commis une erreur dans la requete : en fait c'est plutot ça :
SELECT B1 FROM B WHERE B1=A2 AND A1=0
SELECT B1 FROM B WHERE B1=A2 AND A1=1
La condition varie sur A1.
Désolé je n'avais pas vu votre réponse,
J'ai commis une erreur dans la requete : en fait c'est plutot ça :
SELECT B1 FROM B WHERE B1=A2 AND A1=0
SELECT B1 FROM B WHERE B1=A2 AND A1=1
La condition varie sur A1.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question