Requête qui ne fonctionne pas [Résolu]

Messages postés
74
Date d'inscription
lundi 24 janvier 2011
Dernière intervention
21 février 2012
- 28 déc. 2011 à 10:16 - Dernière réponse :
Messages postés
74
Date d'inscription
lundi 24 janvier 2011
Dernière intervention
21 février 2012
- 29 déc. 2011 à 14:53
Bonjour,

voila j'ai une requête qui doit m'afficher les contacts de la table contact qui ne sont pas dans la table dossier avec une date d'ouverture supérieur ou égal a 6 mois et inférieur ou égale a 12 mois.
mais elle ne m'affiche rien alors qu'elle devrait au moins m'afficher le contact que j'ai rajouter dans la table contact et qui n'a pas de dossier
voila ma requête:
select Contact.Nom, Contact.Prenom, Contact.Civilite, Adresse.Tel, Adresse.Fax, Etablissement.Etablissement
from Contact, Adr_Contact, Adresse, Etablissement, Dossier
where Contact.Contact_Id=Adr_Contact.Contact_Id
and Adr_Contact.Adresse_Id=Adresse.Adresse_Id
and Adresse.Adresse_Id=Etablissement.Adresse_ID
and Contact.Fonc_Id=39
and Contact.Contact_Id NOT IN (
                               Select Contact_Id from Dossier 
                               where Dte_Ouverture <= dateadd(month,-6,getdate()) 
                               and Dte_Ouverture >=   dateadd(month,-12,getdate()) 
                              )
order by Contact.Nom, Contact.Prenom asc;


Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Dernière intervention
22 juin 2017
- 29 déc. 2011 à 14:36
3
Merci
Bonjour,

ton problème se trouve dans ta table dossier, il y a certainement une ligne avec le champ Contact_ID null.

si tu ajoutes Contact_ID is not null dans ta sous requête cela doit fonctionner.

select Contact.Nom, Contact.Prenom, Contact.Civilite, Adresse.Tel, Adresse.Fax, Etablissement.Etablissement
from Contact, Adr_Contact, Adresse, Etablissement, Dossier
where Contact.Contact_Id=Adr_Contact.Contact_Id
and Adr_Contact.Adresse_Id=Adresse.Adresse_Id
and Adresse.Adresse_Id=Etablissement.Adresse_ID
and Contact.Fonc_Id=39
and Contact.Contact_Id NOT IN (
                               Select Contact_Id from Dossier 
                               where Dte_Ouverture <= dateadd(month,-6,getdate()) 
                               and Dte_Ouverture >=   dateadd(month,-12,getdate()) 
                               and Contact_ID is not null
                              )
order by Contact.Nom, Contact.Prenom asc;



Vérifie également que c'est normal d'avoir Contact_ID null

Bonne journée



Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.

Merci cgandco 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cgandco
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Dernière intervention
22 juin 2017
- 28 déc. 2011 à 12:35
0
Merci
bonjour,

La table dossier ne doit pas être dans la clause FROM car elle n'intervient pas dans la requête principale.

As tu testé simplement :

select Contact.Nom, Contact.Prenom, Contact.Civilite, Adresse.Tel, Adresse.Fax, Etablissement.Etablissement
from Contact, Adr_Contact, Adresse, Etablissement
where Contact.Contact_Id=Adr_Contact.Contact_Id
and Adr_Contact.Adresse_Id=Adresse.Adresse_Id
and Adresse.Adresse_Id=Etablissement.Adresse_ID
and Contact.Fonc_Id=39
order by Contact.Nom, Contact.Prenom asc;


ce qui te donne une indication sur l'origine de l'erreur. ta requête principale ou ta sous requête

si elle fonctionne comme çà, fais le test de ta sous requête :

Select Contact_Id from Dossier 
where Dte_Ouverture <= dateadd(month,-6,getdate()) 
and Dte_Ouverture >=   dateadd(month,-12,getdate())


qui ne doit pas te retouner ton nouveau contact_ID


bonne journée




Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
Commenter la réponse de cgandco
Messages postés
74
Date d'inscription
lundi 24 janvier 2011
Dernière intervention
21 février 2012
- 28 déc. 2011 à 16:01
0
Merci
j'ai deja fait se test est séparement elle fonctionne mais dés que je les met ensemble a l'aide du not in elle ne m'affiche rien alors qu'elle devrait au minimum m'afficher le contacts que j'ai rajoutée dans la table contacts puisqu'il n'a aucun dossier lié
Commenter la réponse de tif27940
Messages postés
74
Date d'inscription
lundi 24 janvier 2011
Dernière intervention
21 février 2012
- 28 déc. 2011 à 16:14
0
Merci
je viens d'essayer le tout en enlevant le where c'est a dire juste le
select Contact.Nom, Contact.Prenom, Contact.Civilite, Adresse.Tel, Adresse.Fax, Etablissement.Etablissement
from Contact, Adr_Contact, Adresse, Etablissement
where Contact.Contact_Id=Adr_Contact.Contact_Id
and Adr_Contact.Adresse_Id=Adresse.Adresse_Id
and Adresse.Adresse_Id=Etablissement.Adresse_ID
and Contact.Fonc_Id=39
and Contact.Contact_Id NOT IN (Select Contact_Id from Dossier)
order by Contact.Nom, Contact.Prenom asc;



et même sa sa ne fonctionne pas est ce que sql server express ne gére pas les requête imbriquées?
Commenter la réponse de tif27940
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Dernière intervention
22 juin 2017
- 29 déc. 2011 à 14:38
0
Merci
Il faut retirer la table Dossier dans le from

from Contact, Adr_Contact, Adresse, Etablissement





Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
Commenter la réponse de cgandco
Messages postés
74
Date d'inscription
lundi 24 janvier 2011
Dernière intervention
21 février 2012
- 29 déc. 2011 à 14:53
0
Merci
merci cgandco c'était sa
Commenter la réponse de tif27940

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.