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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème de requête

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de requête

n°887748
phleup
Posté le 01-11-2004 à 14:04:17  profilanswer
 

Bonjour à tous,
 
je craques avec une requête à la con que je n'arrive pas à faire.
Alors en gros, voici la situation :
j'ai 2 tables, une table Référentiel et une table Données.
Dans ma table Référentiels, j'ai une seule colone "Valeur" contenant par exemple, A, B, C, D, E, .... , Z
et dans ma table Données j'ai :  
  Date      Valeur
28/09/2004    A
28/09/2004    C
28/09/2004    E
28/09/2004    R
28/09/2004    T
29/09/2004    A
29/09/2004    B
29/09/2004    C
29/09/2004    D
29/09/2004    E
 
Mon problème est de ressortir pour chaque date, les valeur qui sont dans le référentiel mais qui ne sont pas dans la table Données.
Par exemple, pour le 28/09/2004, je veux que ça me donne, B, D, F etc etc
 
pliiizz, heeeelp
Merci d'avance

mood
Publicité
Posté le 01-11-2004 à 14:04:17  profilanswer
 

n°887784
gizmo
Posté le 01-11-2004 à 15:41:58  profilanswer
 

Y a sans doute meilleur, mais dans un premier jet je verrais ceci:

Code :
  1. SELECT Complete.Date, Complete.value
  2. FROM
  3.   (SELECT Data.date, Values.value
  4.   FROM Data, Values) AS Complete LEFT OUTER JOIN Data
  5.   ON ((Data.date, Data.value) = (Complete.date, Complete.value))
  6. WHERE Data.date IS NOT NULL
  7. ORDER BY Complete.date, Complete.value
  8. ;

n°887811
phleup
Posté le 01-11-2004 à 16:20:03  profilanswer
 

Merci beaucoup pour ta réponse mais Access me sort une erreur au niveau du SELECT après le FROM...
Il a pas l'air d'imer l'imbriquation...


Message édité par phleup le 01-11-2004 à 16:33:16
n°887853
phleup
Posté le 01-11-2004 à 17:34:18  profilanswer
 

et le pb c'est que ça marche à peu près pour s'il y a une date unique dans ma table mais dès qu'il y a plusieurs dates, le resultat est vide...

n°887963
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-11-2004 à 20:06:13  profilanswer
 

J'ai l'impression que Gizmo t'as donné la réponse "à l'envers". Essaie avec "IS NULL" et non pas "IS NOT NULL"
 
Ceci-dit, à première vue, c'est pas tout à fait complète.
 
Je regarde ça de plus près :)

n°887973
gizmo
Posté le 01-11-2004 à 20:12:29  profilanswer
 

exact, c'est avec IS NULL et non IS NOT NULL, ca m'apprendra à ne pas me relire. Et il faudrait également rajouter un DISTINCT sur le resultset du select imbriqué.
 
Maintenant, il faut voir au niveau de la syntaxe d'access, il a sans doute des changements à faire.

n°888010
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-11-2004 à 20:53:23  profilanswer
 

Chuis en train de voir que c'est très ballo que INTERSECT n'existe pas sur les produits M$ :) Parceque sinon c'était tout bête :)
 

SELECT REF.ID, DONNEES.DAT
FROM DONNEES, REF
INTERSECT
SELECT REF.ID, DONNEES.DAT
FROM DONNEES, REF
WHERE DONNEES.IDR = REF.ID


 
 
Bon, ce truc m'à l'air de marcher (mais ça doit être améliorable, parceque c'est bien crade ^^)
 

SELECT DISTINCT D1.DAT, R1.ID
FROM DONNEES D1, REF R1
WHERE R1.ID + cast(D1.DAT as varchar) NOT IN (SELECT D2.IDR + cast(D2.DAT as varchar) FROM DONNEES D2)


n°888012
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-11-2004 à 20:55:40  profilanswer
 

gizmo a écrit :

exact, c'est avec IS NULL et non IS NOT NULL, ca m'apprendra à ne pas me relire. Et il faudrait également rajouter un DISTINCT sur le resultset du select imbriqué.
 
Maintenant, il faut voir au niveau de la syntaxe d'access, il a sans doute des changements à faire.


Ouais, mais j'ai aussi l'impression que tu pars du principe que "Complete" contient une colonne date. Je n'en ai pas l'impression en fait.
C'est là que tout ce complique en fait (sinon un simple select sur le complete avec un not exists sur l'autre table et c'était torché :))

n°888015
phleup
Posté le 01-11-2004 à 20:59:07  profilanswer
 

yeah merci les gars !!

n°888017
gizmo
Posté le 01-11-2004 à 21:00:06  profilanswer
 

Bah oui, vu que c'est moi qui crée complete dans la sous requète avec les dates.
 
Edit, mais effectivement le intersect aurait été sans doute moins lourd.


Message édité par gizmo le 01-11-2004 à 21:01:58
mood
Publicité
Posté le 01-11-2004 à 21:00:06  profilanswer
 

n°888379
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-11-2004 à 11:35:04  profilanswer
 

gizmo a écrit :

Bah oui, vu que c'est moi qui crée complete dans la sous requète avec les dates.
 
Edit, mais effectivement le intersect aurait été sans doute moins lourd.


En effet, j'avais mal lu ta requête :jap:


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

  Problème de requête

 

Sujets relatifs
Probleme avec une requête[MYSQL]probleme requete imbriquée
Problème avec une requête SQL comprenant "in"Problème sur une requete de date
[RESOLU] problème de condition sur un requête SQLProblème de requete
[resolu] probleme de requete avec DAY(date) et MONTH(date)Problème de requête
Problème Access récupération value d'une TextBox dans une Requêteprobleme de concaténation requete mysql
Plus de sujets relatifs à : Problème de requête


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