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 :

Requete SQL difficile


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Par défaut Requete SQL difficile
    Bonjour à tous.

    J'ai deux tables de la forme suivante

    Table1
    (
    Identifiant int Primary key,
    Horodatage datetime
    )

    Table2
    (
    Id int Primary key
    Trame1 int References Table1(Identifiant),
    Trame2 int References Table1(Identifiant)
    )

    Je souhaiterais par une seule requete obtenir l'horodatage correspondant à la trame1, et l'horodatage correspondant à la trame2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    -- Le résultat attendu : 
    Date1             Date2 
    ------            ---------- 
    23/10/2005        24/10/2006
    31/12/2005        09/02/2006
    En faisant deux requêtes, je vois bien comment faire, mais en une seule, je sèche complètement.
    Pour info, je travaille sur MS Sql Server 2005

    Si quelqu'un veut bien m'aider

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    peux tu me donner ta requete pour afficher les colonnes séparées?

  3. #3
    Membre expérimenté Avatar de TheRussian
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 200
    Par défaut
    Bonjour,

    Peut-être que cela peut faire l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select t11.Horodatage as HoroTrame1, t12.Horodatage as HoroTrame2
    from table2 t2
              inner join table1 t11 on t2.Trame1 = t11.Identifiant
              inner join table1 t12 on t2.Trame2 = t12.Identifiant

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT T11.Horodatage as Date1, T12.Horodatage as Date2 
    FROM  Table2 T2
          LEFT OUTER JOIN  Table1 T11 
               ON T2.Trame1 = T11.Identifiant
          LEFT OUTER JOIN  Table1 T12
               ON T2.Trame2 = T12.Identifiant
    a +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    essaie ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT t11.Horodatage AS HoroTrame1, t12.Horodatage AS HoroTrame2
    FROM (table2 AS t2 INNER JOIN table1 AS t11 ON t2.Trame1 = t11.Identifiant) INNER JOIN Table1 AS t12 ON t2.Trame2 = t12.Identifiant;

  6. #6
    Membre très actif Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Par défaut
    Merci à tous pour vos solutions, ça fonctionne parfaitement.

    Bien que les deux méthodes (inner join et left outer join) me retournent des résultats identiques, laquelle des deux est préférable à utiliser, sachant qu'elles seront utilisées sur des tables comptant plus de 10 millions d'enregistrement?

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 377
    Par défaut
    A ta place, je prendrais celle de SQLPro

    en plus il me semble que tu auras quelques problême avec les NULL avec inner join ...

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

Discussions similaires

  1. Requete SQL difficile
    Par Titia765 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/08/2004, 14h10
  2. Une requete SQL unpeux difficile !!
    Par nil dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/03/2004, 12h32
  3. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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