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

Langage SQL Discussion :

Problème requête SQL


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Problème requête SQL
    Bonjour à tous,

    J'ai une table qui me donne un ID_CALENDRIER, un MATRICULE et le CONTRAT associé à celui-ci.
    J'aimerai pouvoir afficher sur une même ligne ces informations tout en rajoutant le CONTRAT correspondant à un ID_CALENDAR choisi.
    Est-ce possible ?

    Merci de vos réponses !

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 311
    Points : 39 669
    Points
    39 669
    Billets dans le blog
    9
    Par défaut
    Bonsoir,

    Bien sur que c'est possible, il suffit d'effectuer une jointure entre cette table et la table CONTRAT pour récupérer les infos de celui-ci
    Communiquez la description de vos tables et index si vous voulez une réponse plus détaillée

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Problème requête SQL
    Bonsoir,

    Le problème est qu'il n'y a pas d'ID_CALENDAR dans la table des contrats...
    Voici ma table d'agrégation : AGG_CONTRACT_EMPLOYEE(ID_CALENDAR,IS_END_OF_MONTH,MATRICULE,CONTRACT)
    Via le champ IS_END_OF_MONTH j'arrive à savoir si l'ID_CALENDAR correspond à la fin du mois ou non et mon but serait de pouvoir afficher le numéro de contrat ainsi que le contrat en fin de mois sur la même ligne.

    Merci de votre aide.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 311
    Points : 39 669
    Points
    39 669
    Billets dans le blog
    9
    Par défaut
    Votre demande est incomplète :

    Communiquez un extrait des données en entrée, un exemple de résultat attendu, ainsi que la description des tables et de leurs index . Pas la description d'une seule table, mais de toutes celles requises pour obtenir votre résultat

    Précisez également le SGBD, le SQL n'est pas 100% identique en fonction de la base de donnée

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Problème requête SQL
    Exemple des données en entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ID_CALENDAR     IS_END_OF_MONTH   MATRICULE     CONTRACT             
    ------------     -----------     ----------     ---------- 
    20100128            0                12                1
    20100129            0                12                1
    20100130            0                12                1
    20100131            1                12                2
    Exemple du résultat attendu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ID_CALENDAR     IS_END_OF_MONTH   MATRICULE     CONTRACT    CONTRACT_FIN_MOIS             
    ------------     -----------     ----------     ----------  ---------- 
    20100128            0                12                1            2
    20100129            0                12                1            2
    20100130            0                12                1            2
    20100131            1                12                2            2
    Je travaille sous SQL SEVER 2012.
    Voici la description de mes tables :
    AGG_CONTRACT_EMPLOYEE(ID_CALENDAR,IS_END_OF_MONTH,MATRICULE,CONTRACT)
    EMPLOYEE(ID_EMPLOYEE,MATRICULE,FIRSTNAME,LASTNAME,BIRTHDATE)
    CONTRACT(ID_CONTRACT,CONTRACT,MATRICULE,START_DATE,END_DATE,TYPE)

    Merci bien

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 311
    Points : 39 669
    Points
    39 669
    Billets dans le blog
    9
    Par défaut
    D'accord,

    Du coup ça fait quelque chose comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT  T1.ID_CALENDAR     
        ,   T1.IS_END_OF_MONTH   
        ,   T1.MATRICULE
        ,   T1.CONTRACT
        ,   T2.CONTRACT
    FROM       AGG_CONTRACT_EMPLOYEE as T1
    LEFT JOIN AGG_CONTRACT_EMPLOYEE as T2
       ON  T2.MATRICULE = T1.MATRICULE
       AND T2.IS_END_OF_MONTH = 1
       AND T2.ID_CALENDAR >= T1.ID_CALENDAR     
       AND xxxx
    J'ai mis une jointure OUTER au cas où il existe des cas sans fin de mois dans votre table, si ça n'existe pas, vous pouvez remplacer par une jointure INNER
    A PRIORI le AND xxx doit être remplacé pour vérifier que le ID calendar dans T2 est bien sur la meme année et le meme mois que dans T1, car il semble qu'il s'agisse d'une pseudo date (très mauvaise idée pour une PK si c'est bien la PK)
    a vous d'effectuer les conversions nécessaires en fonction du format de cette colonne

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Problème requête SQL
    Merci beaucoup pour votre aide , avec un inner join cela a parfaitement fonctionné

Discussions similaires

  1. Problème requête SQL
    Par mandaillou dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/10/2005, 11h37
  2. Problème requête SQL dans page ASP
    Par rocs dans le forum ASP
    Réponses: 14
    Dernier message: 26/07/2005, 15h38
  3. problème requête sql
    Par psychoBob dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/07/2005, 17h50
  4. problème requête sql
    Par perfectdams dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/06/2005, 18h09
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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