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 de requête SQL


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Problème de requête SQL
    Bonjour,

    Je cherche à écrire une requête compréhensible par SQl Server 2005 mais c'est plus la structure même de la requête qui me pose problème.
    Je dispose de deux tables, T_MESURE et T_CONSIGNATION comme suit :

    T_MESURE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Name        Value     Quality     TS
    -----       -----     -----       -----
    Mesure1     10.3      1           27/04/2009 14:15:03
    Mesure2     60.5      3           27/04/2009 14:15:39
    Mesure1     15.8      2           27/04/2009 14:16:18
    T_CONSIGNATION :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Name        Value     EvtNumber      TS
    -----       -----     -----          -----
    Evt1        1          4096          27/04/2009 14:15:23
    Evt2        0          512           27/04/2009 14:16:04

    Les deux tables sont totalement indépendantes, elles vivent leur vie séparément.
    Je cherche à extraire les colonnes Name, Value et TS des deux tables, à regrouper le tout et à ordonner le résultat suivant TS. En gros, j'attend le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Name        Value     TS
    -----       -----     -----
    Mesure1   10.3        27/04/2009 14:15:03
    Evt1        1         27/04/2009 14:15:23
    Mesure2   60.5        27/04/2009 14:15:39
    Evt2        0         27/04/2009 14:16:04
    Mesure1   15.8        27/04/2009 14:16:18
    J'ai lu les tutos SQL, je sens bien qu'il y'a quelque chose à faire avec un UNION mais je bloque un peu. De plus, je n'ai pas l'impression que SQL Server accepte les Unions.

    Quelqu'un pourrait m'aider, svp?
    Merci.

  2. #2
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    ça fera un truc genre

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT Name ,
           Value,
           TS
    FROM   T_MESURE
    UNION
    SELECT Name ,
           Value,
           TS
    FROM   T_CONSIGNATION

    pour que EVT1 se retrouve en dessous de Mesure1 ça me semble plus complexe. POur faire des tris il faudra plutot faire des choses du genre:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT   name ,
             value,
             ts
    FROM
             ( SELECT Name ,
                     Value ,
                     TS
             FROM    T_MESURE
     
             UNION
     
             SELECT Name ,
                    Value,
                    TS
             FROM   T_CONSIGNATION
             )
    ORDER BY name

    bon courage

    juva

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    SQL Server supporte très bien les union.
    D'après vos données vous ne risquez pas d'avoir de doublons entre vos deux tables, vous pouvez donc utiliser UNION ALL.
    Et vous pouvez directement préciser votre tri :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Name , Value, TS
    FROM   T_MESURE
    UNION ALL
    SELECT Name , Value, TS
    FROM   T_CONSIGNATION
    ORDER BY TS ASC

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Oui, merci juva et waldar Les solutions proposées marchent en SQL Server.

    Manque de bol, je suis en VBA et je m'interface avec la base SQL Server via des objets DAO et un lien ODBC et, visiblement, c'est au niveau du DAO que l'union coince.

    La seule solution que je voye est de faire 2 requêtes, une par base, et ensuite de dépiler mes 2 recordsets en comparant les dates de façon à les trier.

    En tout cas, merci, je me coucherai moins bête.

  5. #5
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    ça devrait marcher
    si DAO foire, essaie d'utiliser ADO. Je me souviens plus des subtilités entre les deux

    et au pire fait voir ton code ? à moins que le forum ne soit pas approprié...va sur le fofo VBA

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

Discussions similaires

  1. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  2. problème de requète SQL pour formulaire
    Par en_stage dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 21/06/2005, 12h21
  3. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 15h07
  4. [SQLserver2000][SQLServer CE] problème de requête SQL
    Par JBernn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/01/2005, 09h29
  5. Problème de requète SQL dans un Requery
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2004, 14h58

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