|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Développeur Web Inscription : août 2011 Messages : 9 ![]() |
Bonjour Amis Développeurs,
j'ai un petit problème sur une requête : Code :
Normalement cette requête devrait me retourner un résultat et là rien, j'ai fait les vérifications à la mano je retrouve bien mes données. j'ai essayé de modifier le AND par un OR mais il me trouve les doublons... quelqu'un à une idée ? merci pour vos réponses |
||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
bonjour
première chose, ce serait bien d'utiliser le petit bouton "Code" pour mettre en exergue le code pour les requête UNION, l’écriture SELECT * est à proscrire. Essayes en indiquant explicitement les colonnes à afficher. |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 087 ![]() |
Bonjour,
Sans jeu de données, difficile à dire... Mais je pense que tu peux réécrire ta requête sans sous-requête: Code SQL :
Je te laisse ajouter l'union avec la deuxième partie de la requête. Je pense que mettre le tout dans une sous-requête est aussi inutile. Tatayo. |
||
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Citation:
Definisissez votre regle fonctionnelle. Une fois que celle est bien définie et bornée, vous pouvez vous attaquer au code ! Dans votre exemple, l'expression de besoin semble etre (pour la 1ere partie de la requete) : Rechercher les données présentes dans la table TABLE1 et non présentes dans aucune des tables TABLE2 et TABLE3 RF1 : Presente dans TABLE1 RF2 : Non Presente dans TABLE2 RF3 : Non Presente dans TABLE3 RF1 . RF2 . RF3 Si vous remplacez par un OR, votre résultat devient RF1. (RF2 + RF3) => Données présente dans TABLE 1 et au moins manquantes dans une des tables TABLE2 et TABLE3 Votre code est syntaxiquement correcte, si les résultats retournés ne sont pas ceux que vous attendez, c'est que votre regle fonctionnelle n'est pas celle que vous décrivez. Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
|
10
|
|
|
#5 | |||
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Citation:
Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|||
|
|
00
|
|
|
#6 | |
|
Invité de passage
![]() Développeur Web Inscription : août 2011 Messages : 9 ![]() |
Citation:
Je travaille sur une réserve de "données sensibles" , je ne peux pas vous fournir des données désolé. EDIT: J'ai testé avec la méthode ci-dessus même résultat. |
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Le fait de reecrire la requete sous une forme differente ne vous fera pas evoluer vos résultat. Le probleme vient du fait que SUREMENT la regle annoncée Pas TABLE2 ET Pas TABLE3 n'est pas VRAIE, puisqu'en remplacant par un OR vous obtenez des résultats doublés !
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Développeur Web Inscription : août 2011 Messages : 9 ![]() |
Nous sommes d'accord,sauf que j'ai bien des cas où les deux sont VRAIS mais la requête ne me remonte pas ces résultats là. Si je ne me trompe pas la table d'un ET c'est 0.0=0 0.1=0 1.0=0 1.1=1
|
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Si RF2.RF3 = 1 et que votre resultat est faux, c'est alors que RF1 est vraissemblablement faux.
Code :
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
||
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Développeur Web Inscription : août 2011 Messages : 9 ![]() |
Je viens d'essayer votre solution même problème ,j'utilise Access 2007
|
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Vous pouvez poster votre veritable requete ?
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#12 | ||
|
Invité de passage
![]() Développeur Web Inscription : août 2011 Messages : 9 ![]() |
Code SQL :
|
||
|
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
et vous avez donc trouvé un NOPDCO dans ConsosNulles071
qui n'est présent ni dans Estim071, ni dans FraisFixes07 et qui pourtant n'est pas retourné par cette simple requete : Code :
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
||
|
|
00
|
|
|
#14 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Ok pour les *, mais j'espère que la structure des tables est la même, çà a l'air...
par contre, l'architecture de la base a l'air curieuse. Autant de table qu'il y a de ... je ne sais pas quoi. bon passons Comme l'a écrit je ne sais plus qui un peu avant le NOT EXIST est plus performant. Mais avez-vous testé chaque requête en solo ? dans une requête UNION chaque requête est indépendante. êtes-vous sûr qu'il y a quelque chose à renvoyer ? ------ mince devancer par yanika |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Développeur Web Inscription : août 2011 Messages : 9 ![]() |
oui , il est présent dans la table FraisFixes.
|
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
C'est tout l'objet de l'investigation
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#17 | ||
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Si il est présent dans FraisFixes, c'est normal qu'aucun résultat ne soit renvoyé non ??
Code :
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
||
|
|
00
|
|
|
#18 | |
|
Invité de passage
![]() Développeur Web Inscription : août 2011 Messages : 9 ![]() |
Citation:
j'ai testé chaque requête, j'ai même éclaté chaque ligne de mon code SQL |
|
|
|
00
|
|
|
#19 |
|
Invité de passage
![]() Développeur Web Inscription : août 2011 Messages : 9 ![]() |
Problème résolu , j'ai juste eu besoin de recharger les données dans les tables.
J'ai dû mal à comprendre le problème (peut être un problème de migration de Oracle vers Access), excusez moi d'avoir pris votre temps c'est un geste que j'aurai dû faire depuis le début. Cordialement. |
|
|
00
|
|
|
#20 | ||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Citation:
Citation:
parce que Yanika_bzh a raison ... |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com