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 :

Somme d'une autre table dans un SELECT


Sujet :

Développement SQL Server

  1. #1
    shewy80
    Invité(e)
    Par défaut Somme d'une autre table dans un SELECT
    Bonjour à tous.

    J'ai 2 tables :
    F_DOCENTETE qui est l'entete d'une facture
    F_DOCLIGNE qui sont les lignes de la facture

    Les 2 tables sont joint grâce au champ "DO_Piece" qui est le numéro de la facture.

    Je cherche à faire une requête qui va récupérer des infos de l'entête et aller me calculer la somme des lignes pour en avoir le montant total et me l'ajouter aux SELECT pour en sortir le résultat avec le reste.

    Bah je me rend compte que je ne sais pas faire. Toutes les imbrications que j'ai pu tester l'ont toujours été dans un WHERE et non pas un SELECT


    Ma requête principale :

    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
    SELECT DISTINCT
    F_DOCENTETE.DO_Piece as num_fact,
    F_DOCENTETE.DO_Coord01 as code_banque,
    F_DOCENTETE.DO_Date as date_fact,
    F_DOCENTETE.DO_Coord04 as echeance,
    F_DOCENTETE.DO_Tiers as client,
    F_DOCENTETE.DO_Coord03 as bordereau,
     
    /* TEST : 
    JOIN F_DOCENTETE.DO_Piece = F_DOCLIGNE_Piece
    SET MontantHT=SELECT sum(F_DOCLIGNE.DL_MontantHT) FROM F_DOCLIGNE
    ... Marche pas !
    */
     
    FROM F_DOCENTETE, F_DOCLIGNE 
     
    WHERE F_DOCENTETE.DO_type in('6','7')
    AND LEFT(F_DOCENTETE.DO_Piece,2)='FA'
    AND F_DOCENTETE.DO_Coord03 <> ''
     
    ORDER BY F_DOCENTETE.DO_Coord03 ASC

    Merci de votre aide !
    Dernière modification par Chtulus ; 15/08/2010 à 05h13. Motif: Balises code ! Sélection du code et # dans la fenêtre de rédaction des messages

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Je ne comprends pas grand chose à ta requête (JOIN avant le FROM, et table du JOIN présente dans le FROM, pourquoi ?) mais je pense que cela devrait être quelque chose comme cela :

    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
    23
    24
    25
    26
    27
     
    SELECT DISTINCT
    E.DO_Piece as num_fact,
    E.DO_Coord01 as code_banque,
    E.DO_Date as date_fact,
    E.DO_Coord04 as echeance,
    E.DO_Tiers as client,
    E.DO_Coord03 as bordereau,
    SUM(L.DL_MontantHT)
     FROM F_DOCENTETE E
     
    JOIN F_ DOCLIGNE L 
     ON E.DO_Piece = L.DO_Piece
     
    WHERE E.DO_type in('6','7')
    AND LEFT(E.DO_Piece,2)='FA'
    AND E.DO_Coord03 <> ''
     
    GROUP BY  
    E.DO_Piece,
    E.DO_Coord01,
    E.DO_Date,
    E.DO_Coord04,
    E.DO_Tiers,
    E.DO_Coord03
     
    ORDER BY F_DOCENTETE.DO_Coord03 ASC
    Sous toute réserve en l'absence du DDL.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    shewy80
    Invité(e)
    Par défaut
    Voici le rertour de SQL :

    Serveur*: Msg 170, Niveau 15, État 1, Ligne 11
    Ligne 11 : syntaxe incorrecte vers 'L'.

    Pour répondre à ta question sur le "join" c'est un test. je ne savais pas trop comment faire.

    Le but est d'avoir un tableau de résultats :
    num_fact - code_banque - date_fact - ... - montant

    Par la suite je vais essayer d'ajouter une autre colonne provenant d'une 3eme table.

    Mais peut-être que je ne suis pas sur la bonne voie. Avec une seule requête on ne peut être pas tout faire ? à vous de me dire ...
    Dernière modification par Chtulus ; 15/08/2010 à 05h14.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par shewy80 Voir le message
    Voici le rertour de SQL :

    Serveur*: Msg 170, Niveau 15, État 1, Ligne 11
    Ligne 11 : syntaxe incorrecte vers 'L'.
    Je t'ai passé la requête (n'ayant pas le DDL je ne vois pas ce que je peux faire de plus !) tu peux peut être quand même la débugger.

    Pour répondre à ta question sur le "join" c'est un test. je ne savais pas trop comment faire.
    Lire un tuto sur le SQL peut être ?


    Mais peut-être que je ne suis pas sur la bonne voie. Avec une seule requête on ne peut être pas tout faire ? à vous de me dire ...
    Si.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/05/2010, 16h01
  2. Réponses: 13
    Dernier message: 14/04/2008, 14h30
  3. Modifier une autre table dans un trigger
    Par Mister Nono dans le forum SQL
    Réponses: 4
    Dernier message: 18/09/2007, 12h12
  4. Réponses: 4
    Dernier message: 15/03/2007, 20h32
  5. Réponses: 1
    Dernier message: 20/12/2005, 15h56

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