IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Aide requete jointure periode date


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Points : 144
    Points
    144
    Par défaut Aide requete jointure periode date
    Bonjour,

    J'ai une table A de la forme :
    Date Nom
    01/01/2017 toto
    01/01/2017 tata
    05/01/2017 toto
    10/01/2017 tata

    Table B :
    Nom Etat Date début Date fin
    toto 1 01/01/2017 04/01/2017
    toto 2 05/01/2017 20/01/2017
    tata 1 01/01/2017 20/01/2017

    Je voudrais écrire une requête qui me donne l'état de la personne en fonction de la date
    Date Nom Etat
    01/01/2017 toto 1
    01/01/2017 tata 1
    05/01/2017 toto 2
    10/01/2017 tata 1

    Comment pourrais je faire ca en SQL?

    Merci

  2. #2
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut
    Bonjour,
    Tu voudrais que la date de la table A soit comprise entre les deux dates de la table B c'est ça?

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut
    Une jointure entre les tables A et B sur le nom et la présence de la date entre le début et la fin.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Points : 144
    Points
    144
    Par défaut
    Je voudrais que la requetei me donne l'ETAT de NOM à la date DATE.
    Par exemple le 01/01/2017 toto avait l'état 1 et le 05/01/2017 il avait l'état 2. J'ai essayé de faire une jointure entre les tables A et B sur le nom avec une condition sur la date mais sans succès pour le moment

    Merci

  5. #5
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT A.Date, A.Nom, B.Etat
    FROM A, B
    WHERE A.Nom=B.Nom AND A.Date >= B.Date_debut AND A.Date <= B.Date_fin;
    devrait faire l'affaire?

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut
    1. Depuis des lustres, la norme SQL nous prescrit d'utiliser l'opérateur JOIN pour effectuer une jointure.
    2. Pour une vérification d'intervalle telle que celle-ci, l'utilisation de l'opérateur BETWEEN est plus élégante.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut
    C'est moi qui me forme alors
    Un produit cartésien ne sera pas idéal pour de grosses tables bien sûr...

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT A.Date, A.Nom, B.Etat
    FROM A JOIN B
    ON A.Nom=B.Nom AND A.Date BETWEEN B.Date_debut AND B.Date_fin;
    ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jointure Requete : probleme de date
    Par Ric88 dans le forum Access
    Réponses: 2
    Dernier message: 02/07/2012, 20h03
  2. aide requete sql date
    Par noobyyy dans le forum Langage SQL
    Réponses: 5
    Dernier message: 10/07/2009, 16h57
  3. [Requete] Comparaison de date / Periode - tab. croisé. dyn
    Par Gronain dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/05/2006, 16h04
  4. [VB.NET] Requete sql et date
    Par mic56 dans le forum Accès aux données
    Réponses: 11
    Dernier message: 03/06/2004, 10h39
  5. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo