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 :

Besoin d'aide SQL


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    comptable controleur de gestion
    Inscrit en
    Janvier 2023
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : comptable controleur de gestion

    Informations forums :
    Inscription : Janvier 2023
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Besoin d'aide SQL
    Bonjour,

    Je suis un peu rouillé en requête sql et j'aurais besoin d'aide, voici mon problème:

    J'ai 3 tables: AFFAIRE, LIGNE DOCUMENT DE VENTE et LIGNE DOCUMENT D'ACHAT

    Dans la table je retrouve les colonnes suivantes ID_AFFAIRE et CODE_ARTICLE
    Dans la table LIGNE DOCUMENT DE VENTE j'ai les colonnes suivantes ID_FACTURE, CODE_ARTICLE, ID_AFFAIRE et MONTANT_VENTE_HT
    Dans la table LIGNE DOCUMENT D'ACHAT j'ai les colonnes suivantes ID_FACTURE, CODE_ARTICLE, ID_AFFAIRE et MONTANT_ACHAT_HT

    Une code affaire peu contenir plusieurs documents de vente et d'achat, et chaque document de vente et d'achat peu contenir plusieurs articles. (les articles des documents de vente et d'achat sont les mêmes que dans la table AFFAIRE)

    J'aimerai obtenir le résultat suivant:
    Pour chaque article de la table AFFAIRE en colonne 1, il me faut la somme des achats depuis la table LIGNE DOCUMENT D'ACHAT en colonne 2 et la somme des ventes depuis la table LIGNE DOCUMENT DE VENTE en colonne 3.

    J'arrive à obtenir 2 résultats avec 2 requêtes, la première me donne en colonne 1 les articles et en colonnes 2 les ventes, la deuxième me donne en colonne 1 les articles et en colonne 2 les achats.
    Mais je n'arrive pas à "combiner" les 2 pour obtenir une seule colonne articles et les colonnes achats, ventes à la suite.

    Pour préciser, j'utilise un outil de requête sql inclus dans un logiciel de gestion commerciale, EBP en l'occurrence.

    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    En préambule, je trouve la modélisation un peu bizarre. Si le code produit est dans la table AFFAIRE, et que la table "LIGNE DOCUMENT DE VENTE" possède un lien vers la table AFFAIRE, le code produit dans la première table est redondant.

    Pour en revenir à la demande initiale, peux-tu nous donner les deux requêtes que tu as utilisées ?
    Est-ce que tu as "droit" aux CTE avec EBP ?

    Tatayo.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Une affaire peut donc concerner à la fois des ventes et des achats, c'est bien ça ?
    Par contre, faute de date dans la table vente et dans la table achats, le cumul se fera sur un horizon indéterminé.
    Et comme il faut le cumul par article indépendamment de l'affaire, un simple regroupement sur l'article fera l'affaire.

    Comme je suppose qu'il peut y avoir des articles sans ventes ou sans achats, il faut utiliser des jointures externes, ce qui donne :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select AF.CODE_ARTICLE
         , sum(VT.MONTANT_VENTE_HT) as TOTAL_VTE
         , sum(AC.MONTANT_ACHAT_HT) as TOTAL_ACH
    from AFFAIRE as AF
    left join LIG_DOC_VTE as VT
      ON VT.CODE_ARTICLE=AF.CODE_ARTICLE
     AND VT.ID_AFFAIRE=AF.ID_AFFAIRE
    left join LIG_DOC_ACH as AC
      ON AC.CODE_ARTICLE=AF.CODE_ARTICLE
     AND AC.ID_AFFAIRE=AF.ID_AFFAIRE
    group by AF.CODE_ARTICLE
    ;

    Et je confirme que la modélisation est bien pourrie, mais si la BDD est celle d'un progiciel, vous ne pourrez sans doute rien y faire

Discussions similaires

  1. besoin d'aide sql
    Par carolina88 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/11/2012, 09h19
  2. besoin d'aide sql
    Par gentelmand dans le forum SQL
    Réponses: 13
    Dernier message: 16/03/2010, 14h31
  3. Besoin d'aide SQL
    Par Fiscardo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/07/2008, 21h48
  4. j'ai besoin d'aide [SQL SERVR]
    Par am.adnane dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/01/2006, 14h24
  5. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59

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