aide pour une requete - SQL/NoSQL - Programmation
Marsh Posté le 27-07-2008 à 22:22:31
si tu as une table des départements, tu peux comparer un count(*) sur le département avec un cout(distinct departement_id) groupé par modèle.
Marsh Posté le 28-07-2008 à 00:44:29
casul a écrit : bonjour, tout le monde, j'aimerai de l'aide pour résoudre ce cas de requete sql s'il vous plait, |
Impossible comme ça pour une raison simple : imagine que tu n'ai que 3 lignes dans la table : une 750i dans le 01, une 600 dans le 01 et une 600 dans le 02. Comment savoir si la France n'a pas que 2 départements ? (dans ce cas la 600 serait présente dans tous les déps, 01 et 02)
Tu peux te dire "j'ai qu'à prendre en compte qu'il y a 98 départements" : non seulement c'est crade et pas trop dans l'esprit des BDD relationelles, mais surtout ya le 2A et le 2B, et ptet des numéros qui n'existent pas vers la fin (?)
Si tu veux savoir si une voiture est présente dans tous les départements, il te faut d'une façon ou d'une une liste de tous les départements existants (indépendante de cette table)
edit : ou *au pire* le nombre de départements dispos, et tu compare COUNT(DISTINCT departement) à celui-ci (cf MagicBuzz)
Marsh Posté le 28-07-2008 à 20:34:45
bonjour
en fait tout les département ne sont pas forcement présents, admettons qu'il y ait 500 voiture au total (il peut y avoir plusieurs 600, plusieurs 635,ou un modele en exemplaire unique...) chacun de ces modeles est rattaché a un departement (donc un même modele dans plusieurs département, ou un modele absent d'un ou plusieurs département)
ce qu'on veut c'est simplement les points commun: quel sont les département (peu importe leur nombre) qui possedent au moins un modele de chaque voiture
merci de votre aide
Marsh Posté le 28-07-2008 à 21:16:29
c'est ce qu'on appelle une division en sql, avec ici la particularité que tu la fais sur les champs d'une meme table donc il faut une synchronisation (réalisée grace aux alias+auto jointure)
pour la liste des voitures presentes dans tous les departements de la table:
select distinct modeles
from voiture v1
where not exists (select distinct departements
from voiture
MINUS
select distinct departements
from voiture v2
where v1.modeles=v2.modeles);
pour la liste des deps qui possedent tous les modeles de voiture:
select distinct departements
from voiture v1
where not exists (select distinct modeles
from voiture
MINUS
select distinct modeles
from voiture v2
where v1.departements=v2.departements);
Marsh Posté le 28-07-2008 à 21:24:38
je ne pourrai tester que demain, en tout cas merci beaucoup, je te tiens au courant
Marsh Posté le 27-07-2008 à 13:35:43
bonjour, tout le monde, j'aimerai de l'aide pour résoudre ce cas de requete sql s'il vous plait,
j'ai une table (oracle) qui s'appelle "voiture" dans cette table j'ai d'un coté les "modeles" (750i, 323, slr, q7, 600...) d'un autre coté j'ai des "départements" associés a ces "modeles" (92, 95, 77, 02, 89...)
donc chaque "modeles" est rattaché a un seul "départements" à la fois mais un même "modeles" peut etre présent dans tout les "départements" (ex, il y a des "modeles" 750i "departements" 92, des "modeles" 750i "departements" 95, des 750i "departements" 02 etc...)
certains "modeles" sont donc présents dans tout les "départements", d'autres dans certains départements seulement (ex: il y a des q7 "départements" 95, des q7 "départements" 02, mais pas de q7 "départements" 89)
j'aimerai savoir si il est possible de faire un requête pour connaitre le ou les "modeles" qui sont présents dans tout les "départements" donc un résultat qui dirait que c'est la 750i qui est présente dans tout les départements de france (ou a la fois la 750i, la 323, la 600 etc...)
je vous remercie beaucoup (bien sûr je suis un débutant vous l'aurez compris )
Message édité par casul le 27-07-2008 à 13:45:18