rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut :

[SQL] pb de sous requete avec plrs attributs

Posté par hinanui, le mercredi 23 juin 2004 à 10:26:49
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:

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!!!!
Répondre à hinanui  Signaler ce message aux modérateurs Aller au dernier message

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
romain_natiez, le mercredi 23 juin 2004 à 10:33:18
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
Répondre à romain_natiez

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
DaNot, le mercredi 23 juin 2004 à 10:35:50
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 :
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...
Répondre à DaNot

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
hinanui, le mercredi 23 juin 2004 à 11:07:51
(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 :

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
Répondre à hinanui

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
DaNot, le mercredi 23 juin 2004 à 11:37:10
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 :
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...
Répondre à DaNot


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 hinanui, le mercredi 23 juin 2004 à 11:48:33
merci pour l idee!
Répondre à hinanui
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger Visual Basic 6 Runtime (VB6 DLL) 6.0 SP5Visual Basic 6 Runtime (VB6 DLL) - Le Runtime Visual Basic 6 contient l'ensemble des librairies (DLL) nécessaires pour exécuter des programmes écrits en...Catégorie: Librairies (DLL)
Licence: Freeware/gratuit
Télécharger MySQL 5.0.51bMySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. Catégorie: Bases de données
Licence: Open Source
Télécharger GLPI 0.71GLPI - GLPI est une application libre, distribuée sous licence GPL destinée à la gestion de parc informatique et de helpdesk. ...Catégorie: Gestion de parc
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [SQL] pb de sous requete avec plrs attributs »