Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2566 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Différence entre deux requêtes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Différence entre deux requêtes

n°1955012
MaRTy59
Posté le 05-01-2010 à 08:34:10  profilanswer
 

Bonjour à tous.
J'aimerais que cette requête :

Code :
  1. SELECT b1.NOM, b1.PRENOM
  2. FROM base1 b1, base2@lkb1b2 b2
  3. WHERE b2.dpm != '0'
  4. AND b1.COD(+) = b2.Num
  5. ORDER BY b1.NOM, b1.PRENOM;


Soit "soustraite" à celle la :

Code :
  1. SELECT b1.NOM, b1.PRENOM
  2. FROM base1 b1, base2@lkb1b2 b2
  3. WHERE b2.dpm != '0'
  4. AND b1.COD = b2.Num
  5. ORDER BY b1.NOM, b1.PRENOM;


Pour avoir la différence entre les deux.
J'ai essayé avec un not exists mais je ne pense pas que ça fonctionne car quand j'exécute la première j'ai 5782 résultats, avec la deuxième j'en ai 5181, avec mon not exist je me retrouve avec plus de 7000 lignes, alors qu'avec une requête de différence je devais avoir les 601 lignes différentes entre les deux.  
Merci de votre aide.

mood
Publicité
Posté le 05-01-2010 à 08:34:10  profilanswer
 

n°1955034
MagicBuzz
Posté le 05-01-2010 à 09:46:16  profilanswer
 

1/ la première requête effectue une jointure ouverte avec le langage abominable d'Oracle
2/ réécrit la première comme ça :
 

Code :
  1. SELECT b1.nom, b1.prenom
  2. FROM base1 b1
  3. LEFT OUTER JOIN base2@lkb1b2 b2 ON b2.num = b1.cod
  4. WHERE b2.dpm != '0'


 
3/ Rajoute "where b2.num is null" pour avoir ta réponse
 
3bis/ Ou réécrit ta requête comme suit :
 

Code :
  1. SELECT b1.nom, b1.prenom
  2. FROM base1 b1
  3. WHERE NOT EXISTS (SELECT NULL FROM base2@lkb1b2 b2 WHERE b2.dpm != '0' AND b2.num = b1.cod)


 
PS : à l'interprétation du "(+)" près, je sais jamais si c'est left ou right outer join...

n°1955046
MaRTy59
Posté le 05-01-2010 à 10:21:58  profilanswer
 

Je ne peux malheureusement pas utiliser de LEFT OUTER JOIN ...
Base trop ancienne :(

n°1955048
MagicBuzz
Posté le 05-01-2010 à 10:25:58  profilanswer
 

ben il te reste le 3bis :spamafote:

n°1955050
MaRTy59
Posté le 05-01-2010 à 10:40:34  profilanswer
 

Fonctionne mais me donne pas les 601 résultats que j'attends.
Je vais procéder d'une manière différente, merci pour ton aide.

n°1955051
MagicBuzz
Posté le 05-01-2010 à 10:44:46  profilanswer
 

ben inverse le base1 et le base2 dans ma requête, c'est certainement mon interprétation du (+) qui est fausse

 

parce que la logique de la requête doit te donner les résultat que tu attends


Message édité par MagicBuzz le 05-01-2010 à 10:45:11
n°1955102
E-Nyar
I ain't no nice guy after all
Posté le 05-01-2010 à 13:58:44  profilanswer
 

Avec un Minus ?  (linverse de l'INTERSECT)
 
Requête 1
MINUS
Requête 2


---------------
Don't fuck me, I'm anonymous.
n°1955139
MagicBuzz
Posté le 05-01-2010 à 14:32:17  profilanswer
 

si le left outer join est pas supporté par cette version d'oracle, je doute fortement que le minus le soit. à ma connaissance, le minus est arrivé après (perso, je l'ai jamais vu, alors que j'ai déjà travaillé avec les outer join)


Message édité par MagicBuzz le 05-01-2010 à 14:32:32
n°1955147
E-Nyar
I ain't no nice guy after all
Posté le 05-01-2010 à 14:41:37  profilanswer
 

Je dirais la 8i pour le MINUS, à confirmer...


---------------
Don't fuck me, I'm anonymous.
n°1955154
MagicBuzz
Posté le 05-01-2010 à 14:49:38  profilanswer
 

t'es sûr ???

mood
Publicité
Posté le 05-01-2010 à 14:49:38  profilanswer
 

n°1955168
E-Nyar
I ain't no nice guy after all
Posté le 05-01-2010 à 15:12:10  profilanswer
 

on le retrouve dans le Oracle8i SQL Reference  : http://download.oracle.com/docs/cd [...] /index.htm
je suis pas allé chercher plus avant ;)


Message édité par E-Nyar le 05-01-2010 à 15:16:21

---------------
Don't fuck me, I'm anonymous.
n°1955186
MagicBuzz
Posté le 05-01-2010 à 15:52:09  profilanswer
 

ok. bon, ben je dois confondre avec un autre truc, j'étais persuadé de jamais l'avoir utilisé sous oracle...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Différence entre deux requêtes

 

Sujets relatifs
Différence comportement entre firefox et ieDifférence entre deux Requêtes
problème d'exécution des requêtesRequêtes HTTP en Phython
[SQL] Requetes SQL et Jointuresada différence fonction, procédure
Problemes requetes PHP/MySqlTrier résultat de 2 requetes
[RESOLU]Plusieurs requetes SQL en une seul sous forme de tableau[Access] Différence de vitesse INNER JOIN et 2 requetes imbriquées?
Plus de sujets relatifs à : Différence entre deux requêtes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR