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 :

Fusion entre deux requetes


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Points : 111
    Points
    111
    Par défaut Fusion entre deux requetes
    Bonjour,

    J'aimerais fusionner deux requêtes qui chacune d'entre elles renvoient deux champs différents et deux champs en commun. Les deux requêtes tapent sur la même table.
    Ma première requête me renvoi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_article, poids_offre
    Et ma deuxième requête renvoi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_article, poids_facture
    Au final, j'aurais besoin du résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_article, poids_offre, poids_facture
    Ma structure de table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_article, type (offre ou facture), poids, date
    Impossible de trouver une solution sans passer par une table temporaire.
    Quelqu'un aurait une idée ?
    SGBD: SQL Server 2008
    Merci pour votre aide.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Il serait utile de poster les deux requêtes en question, car là je ne vois pas où est le problème, il suffit de rajouter la colonne manquante dans l'une des deux requêtes...

    Si les filtres sont différents, alors vous pouvez faire une jointure entre vos deux requetes (en tables dérivée), mais il y a sans doute moyen de faire mieux... si on connait les requêtes

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Regardez du côté de CASE pour gérer les types.

  4. #4
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mars 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Mars 2016
    Messages : 58
    Points : 105
    Points
    105
    Par défaut
    Bonjour

    En complement de la reponse de skuatamad, par exemple :

    Code : 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
    18
    19
    20
    21
    22
     
    WITH TMP AS
      (SELECT 1 AS id_article,
              'O' AS [type],
              10 AS poids
       UNION ALL SELECT 1 AS id_article,
                        'O' AS [type],
                        20 AS poids
       UNION ALL SELECT 1 AS id_article,
                        'F' AS [type],
                        5 AS poids
       UNION ALL SELECT 2 AS id_article,
                        'O' AS [type],
                        5 AS poids
       UNION ALL SELECT 2 AS id_article,
                        'O' AS [type],
                        8 AS poids)
    SELECT id_article,
           SUM(CASE WHEN [type] = 'O' THEN poids ELSE 0 END),
           SUM(CASE WHEN [type] = 'F' THEN poids ELSE 0 END)
    FROM TMP
    GROUP BY id_article
    Une autre solution serait de passer par PIVOT je pense

  5. #5
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Points : 111
    Points
    111
    Par défaut
    Merci pour vos réponses, c'est exactement ça

    Je clôture le sujet.

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

Discussions similaires

  1. Table, faire la fusion entre deux case
    Par dftrish dans le forum WinDev
    Réponses: 4
    Dernier message: 05/06/2007, 16h22
  2. fusion de deux requete
    Par darkspoilt dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/05/2007, 09h59
  3. jointure entre deux requete(sans doublant)
    Par nassu dans le forum Access
    Réponses: 1
    Dernier message: 10/04/2006, 11h26
  4. difference entre deux requetes
    Par rdams dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/12/2005, 09h38
  5. jointure entre deux requete
    Par Youssef dans le forum Langage SQL
    Réponses: 21
    Dernier message: 15/01/2004, 15h13

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