[SQL] pb de sous requete avec plrs attributs
hinanui
Messages postés
14
Statut
Membre
-
hinanui Messages postés 14 Statut Membre -
hinanui Messages postés 14 Statut Membre -
Bonjour!!!
Voila, j ai un petit souci avec SQL. Je voudrais savoir s il est possible d utiliser une sous requete qui renvoie plusieurs lignes sur 2 colonnes et de tester si un couple fait parti de cette selection. En plus clair, voici la requete que je voudrais faire:
j ai essaye de l executer ms ca plante, et je pense que ca vient du fait que je fais un test sur 2 attributs au lieu d un seul.... au fait, je bosse sous access 2000...
Est ce quelqu un aurait une idee lumineuse a me faire partager? :-)
merci d avance!!!!
Voila, j ai un petit souci avec SQL. Je voudrais savoir s il est possible d utiliser une sous requete qui renvoie plusieurs lignes sur 2 colonnes et de tester si un couple fait parti de cette selection. En plus clair, voici la requete que je voudrais faire:
select... from.... where (attribut1, attribut2) IN ( select attribut1, attribut2 from.... where...... )
j ai essaye de l executer ms ca plante, et je pense que ca vient du fait que je fais un test sur 2 attributs au lieu d un seul.... au fait, je bosse sous access 2000...
Est ce quelqu un aurait une idee lumineuse a me faire partager? :-)
merci d avance!!!!
A voir également:
- [SQL] pb de sous requete avec plrs attributs
- Logiciel sql - Télécharger - Bases de données
- Jointure sql ✓ - Forum MySQL
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Cherche des haricot vendez les moi ✓ - Forum DS
5 réponses
salut,
moi, ce que g vu en cours cette année, c'est qu'une sous requète ne renvoyait qu'une seule valeur
je pense que tu doit plutot utiliser un like, mais je suis pas sûr..
++
Romain_natiez
moi, ce que g vu en cours cette année, c'est qu'une sous requète ne renvoyait qu'une seule valeur
je pense que tu doit plutot utiliser un like, mais je suis pas sûr..
++
Romain_natiez
Salut,
Encore une limitation d'Access : il ne faut utiliser qu'une seule colonne dans une sous-requete avec l'operateur IN.
La solution est d'utiliser l'operateur EXISTS :
DaNot
un Libre ouvert à la source...
Encore une limitation d'Access : il ne faut utiliser qu'une seule colonne dans une sous-requete avec l'operateur IN.
La solution est d'utiliser l'operateur EXISTS :
SELECT * FROM personnes p WHERE EXISTS (SELECT * FROM test t WHERE p.age = t.age AND p.ville = t.ville);
DaNot
un Libre ouvert à la source...
(re)Bonjour!
merci pour la reponse, mais en fait, ce q je voudrais serait de pouvoir recuperer un certain nombre de colonnes dont 2 qui feraient partie d'une liste de couples generee par une sous requete, d ou la comparaison avec un couple d attribut.
En fait, ma vraie requete serait :
la sous requete renvoie pour chaque etabID l annee la plus ancienne connue pour un enregistrement. Et moi, je voudrais, par la requete principale, recuperer toutes les informations pour l annee la plus ancienne pour chaque etabID.
je ne sais pas si c est tres clair, mais voila....
je suis ouverte a toutes autres suggestions!
merci d avance
merci pour la reponse, mais en fait, ce q je voudrais serait de pouvoir recuperer un certain nombre de colonnes dont 2 qui feraient partie d'une liste de couples generee par une sous requete, d ou la comparaison avec un couple d attribut.
En fait, ma vraie requete serait :
select tblca.* from tblca where ( tblca.etabid, tblca.annee) in (SELECT tblCa.EtabID, Min(tblCa.Annee) AS annee FROM tblCa GROUP BY tblCa.EtabID);
la sous requete renvoie pour chaque etabID l annee la plus ancienne connue pour un enregistrement. Et moi, je voudrais, par la requete principale, recuperer toutes les informations pour l annee la plus ancienne pour chaque etabID.
je ne sais pas si c est tres clair, mais voila....
je suis ouverte a toutes autres suggestions!
merci d avance
Re-Salut,
Bon, j'ai fait un petit exemple et j'ai trouver une solution :
1. Faire une 1ere requete (min_tblCa par ex) retournant l'annee minimum pour chaque Id :
Ensuite, faire une seconde requete avec la table tblCa et la 1ere requete :
DaNot
un Libre ouvert à la source...
Bon, j'ai fait un petit exemple et j'ai trouver une solution :
1. Faire une 1ere requete (min_tblCa par ex) retournant l'annee minimum pour chaque Id :
SELECT tblCa.EtabID, Min(tblCa.Annee) AS annee FROM tblCa GROUP BY tblCa.EtabID;
Ensuite, faire une seconde requete avec la table tblCa et la 1ere requete :
select tblca.* from tblca, min_tblCa where tblca.etabid = min_tblCa.etabid tblca.annee = min_tblCa.annee;
DaNot
un Libre ouvert à la source...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question