Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2011, 08h19   #1
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 5
Points : 0
Points : 0
Par défaut jointure dans une Requete

Bonjour à tous,
Qu'est ce que je dois faire? voyez vous! j'ai 3 Table Visiteur, Move IN, Move Out .
Je veux avoir La situation de jour d'un visiteur dans une date donnée.

exemple:
Donnons le situation de Visiteur : JEAN dans 25/11/2011 à 25/12/2011
Je veux avoir

JEAN - 25/11/2011 - 30/11/2011 - IN
JEAN - 01/12/2011 - 11/12/2011 - OUT
....(Ainsi de suite)

voici les champs de la table

VISITEUR(NumVisiteur,NomVisiteur,PrenomVisiteur,....)
Move IN (IdIN, DateEntrée, Date Sortie)
Move Out (IdOUT,DateDépart, DateRetour)

Ma relation :

Move IN --->VISITEUR<--- Move OUT
ainadom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 09h56   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Ainadom,

Citation:
Envoyé par Ainadom
Je veux avoir La situation de jour d'un visiteur dans une date donnée.
==> pas très clair...


Citation:
Envoyé par Ainadom
voici les champs de la table :
VISITEUR(NumVisiteur,NomVisiteur,PrenomVisiteur,....)
Move IN (IdIN, DateEntrée, Date Sortie)
Move Out (IdOUT,DateDépart, DateRetour)

Ma relation :
Move IN --->VISITEUR<--- Move OUT
==> encore moins...

Dans un premier temps, n'y-a-t-il pas NumVisiteur dans les tables MoveIN et MoveOut ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 16h24   #3
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 5
Points : 0
Points : 0
bon je vous explique par un exemple !!!

J'ai une base de données: Entrée_Sortie
Dans cette base j'ai 3 table : Expat, Move OUT, Move IN
dans la table visiteur(NumVisiteur, NomVisiteur, PrénomVisiteur)
table Move In(IdIN,DateEntrée,Datesortie, NumVisiteur)
Table Move OUT(IdOUT,Datedépart,dateretour, NumVisiteur)

(Explication -->Cette base sauvegarde les Entrées et sortie des expats Qui entre dans une site

exemple : Visiteur : V1-YOUMI -Lee
IN : 1 - 12/02/2011 - 20/10/2011
OUT : 1 - 20/10/2011 - 30/10/2011

Alors de je veux avoir la situation de l'expat YOUMI dans 11/05/2010 à 23/10/2010 est ce qu'elle IN ou OUT)

Je ne sais pas si c'est claire mais Je veux avoir le resultat de cette requete. Comment faire SVP?
ainadom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 16h51   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
OK, donc, il y a bien NumVisiteur dans MoveIN et MoveOUT, contrairement à ce qu'indiquait ton post d'origine.

Dans un deuxième temps, je n'ai pas compris l'utilité de MoveIN ET de MoveOUT. Une seule table :
Move(IdMove, NumVisiteur, DateEntrée, DateSortie, ...)
ne suffit-elle pas ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 07h33   #5
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 5
Points : 0
Points : 0
Pas tout çà fais! Mais Tu vois les champs de chaque tables sont différent. Bon tous ce que je veux alors c'est un intervalle de temp qu'est ce que tu me suggère (Fond et forme) oublie mes tables.
Je veux avoir un intervalle de temps d'un visiteur. Quand est ce qu'il/elle entre dans une site quand est ce qu'il/elle sort? quand est ce qu'il/elle est en vacance?

Bon je veus prendre un autre exemple pour que ce soit claire.

Un Expat travaille dans une usine à une date indéterminé . Il a le droit de prendre de conger.
1) Quand est ce qu'il est en congé?
2) Quand est ce qu'il n'est pas en congé?
Supposant qu'un expat s'appelle Raphael a débuté son travaille le 14/02/2011

Donne moi juste des idées des tables et requête. Merci d'avance
ainadom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 14h14   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Ainadom,

Citation:
Envoyé par Ainadom
Donne moi juste des idées des tables et requête.
Visiteur(NumVisiteur, NomVisiteur, PrenomVisiteur,....)
Move(NumVisiteur, DateEntrée, DateSortie, ...)

Une requête R1, via l'assistant :
- Visiteur, Move (FROM), liées via NumVisiteur, sans flèche (INNER JOIN) ;
- champs NumVisiteur, DateEntrée, DSor : si DateSortie est Null => 31/12/2900 (SELECT) ;

A une date DateRef, un NumVisiteur est présent s'il existe un enregistrement de R1 avec DateRef entre DEnt et DSor.

Attention à tester, dans le programme de saisie des pointages, le chevauchement des dates d'entrée et de sortie d'un même visiteur.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 16h11   #7
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
Bonjour,

si on souhaite conserver les deux tables MoveIn et MoveOut, on peut commencer par une requête intermédiaire UNION pour fusionner les données.

Par exemple, une requête RequeteMove:
Code sql :
1
2
3
( SELECT NumVisiteur, DateEntrée AS DateDebut, DateSortie AS DateFin, "In" AS TypeMove FROM [Move IN] )
UNION ALL
( SELECT NumVisiteur, DateDépart, DateRetour, "Out" FROM [Move OUT] )
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 10h19   #8
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Ainadom et Fabien,

Ainadom, si tu dois lancer la requête proposée par Fabien, voir s'il faut utiliser UNION ALL ou UNION tout court :
  • UNION ALL : union des deux requêtes, y compris les enregistrements en double ;
  • UNION : union des deux requêtes, sans les enregistrements en double.
, Fabien.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 09h11   #9
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 5
Points : 0
Points : 0
Bonjour,
Voici ce que j'ai fait

Code :
1
2
3
4
5
6
7
8
9
10
(SELECT EXPATRIE.[Matricule expatrie], EXPATRIE.[Nom expatri], EXPATRIE.[Prenom expatrie], [MOVE IN expat].[Date arrivée] as Date1, [MOVE IN expat].[Date sortie] as Date2, "IN" AS Situation
FROM EXPATRIE INNER JOIN [MOVE IN expat] ON EXPATRIE.[Matricule expatrie] = [MOVE IN expat].[Matricule expatrie]
WHERE ((([MOVE IN expat].[Date arrivée])=[Date1]) AND (([MOVE IN expat].[Date sortie])=[Date2])))
 
UNION ALL
 
(SELECT [MOVE OUT Expat].[Matricule expatrie], EXPATRIE.[Nom expatri], EXPATRIE.[Prenom expatrie], [MOVE OUT Expat].[Date Départ] as Date1, [MOVE OUT Expat].[Date Retour] as Date2, "OUT" AS Situation
FROM EXPATRIE INNER JOIN [MOVE OUT Expat] ON EXPATRIE.[Matricule expatrie] = [MOVE OUT Expat].[Matricule expatrie])
WHERE ((([MOVE OUT expat].[Date Départ])=[Date1]) AND (([MOVE OUT expat].[Date Retour])=[Date2])))
;
Le probleme dans ces requetes c'est que quand je l'execute un message montre qu'il y a un problème de syntaxe.
Tous ce que je veux moi dans cette requete c'est que la valeur des paramêtres dans ces deux requete unies sont les mêmes. Qu'est ce qu'on doit faire?

Merci d'avance.
ainadom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 19h59   #10
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
bonsoir,

un pt'it peu de nettoyage dans les parenthèses, un poil de remise en forme et on arrive à un truc qui passe au niveau de la syntaxe:

Code sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(SELECT expatrie.[Matricule expatrie],
        expatrie.[Nom expatri],
        expatrie.[Prenom expatrie],
        [MOVE IN expat].[Date arrivée] AS datedeb,
        [MOVE IN expat].[Date sortie]  AS datefin,
        "IN"                           AS situation
 FROM   expatrie
        INNER JOIN [MOVE IN expat]
          ON expatrie.[Matricule expatrie] =
             [MOVE IN expat].[Matricule expatrie]
 WHERE  [MOVE IN expat].[Date arrivée] = [Date1]
        AND [MOVE IN expat].[Date sortie] = [Date2])
UNION ALL
(SELECT [MOVE OUT Expat].[Matricule expatrie],
        expatrie.[Nom expatri],
        expatrie.[Prenom expatrie],
        [MOVE OUT Expat].[Date Départ],
        [MOVE OUT Expat].[Date Retour],
        "OUT"
 FROM   expatrie
        INNER JOIN [MOVE OUT Expat]
          ON expatrie.[Matricule expatrie] =
             [MOVE OUT Expat].[Matricule expatrie]
 WHERE  [MOVE OUT expat].[Date Départ] = [Date1]
        AND [MOVE OUT expat].[Date Retour] = [Date2]);
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 10h19   #11
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 5
Points : 0
Points : 0
Merci beaucoup. ça marche parfaitement
ainadom est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h06.


 
 
 
 
Partenaires

Hébergement Web