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

WinDev Discussion :

Requête avec des calculs sur plusieurs fichiers de données [WD24]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 125
    Par défaut Requête avec des calculs sur plusieurs fichiers de données
    Bonjour à toutes et à tous,

    Lorsque je bloque sur un truc, je me documente, je lis, je cherche (dès fois pas très bien) et puis je fais autre chose, je reviens dessus et quand je crois avoir tout tenté et que rien n'y fait, je viens chercher de l'aide pour essayer de faire ce que je cherche à obtenir.

    Avant de développer j'ai hésiter à poster sur le forum SQL par rapport au langage mais voilà il s'agit de Windev.

    Pour vous expliquer le plus simplement possible voici une petite image. Moi-même je me comprends mieux avec des images.

    Nom : capture d’écran.png
Affichages : 1104
Taille : 21,4 Ko

    Dans les colonnes de "Code à Quantité Vendu", j'arrive à afficher les données par une requête sur les fichiers de données VENTE_LIGNE, PRODUIT... de mon analyse https://www.developpez.net/forums/at.../analyse1.jpg/.

    Dans un autre post https://www.developpez.net/forums/d2.../#post11589366 j'envisage de regrouper les fichier de données RECEPTION_LIGNE, VENTE_LIGNE et TRANSFERT_LIGNE dans un seul fichier MOUVEMENT (ce qui me semble-t-il aurai été plus simple pour construire cette requête). Mais pour l'instant, j'ai pas encore fini de réfléchir à la structure des données.
    Donc ce que je voudrais obtenir c'est le remplissage des colonnes "Dispo..." par la somme des RECEPTION_LIGNE-VENTE_LIGNE+TRANSFERT_LIGNE(Quantité_entrante)-TRANSFERT_LIGNE(Quantité_sortante).

    Voilà ce que j'ai déjà fait. Jusqu'à présent je passais par l'éditeur de requête, mais en codant directement en SQL je n'arrivais pas toujours au résultat. Et puis j'ai lu deux, trois de vos conseils ou il est conseillé de pas utilisé l'éditeur.
    Alors j'ai essayé de me mettre à la saisie dans la fenêtre. Je dois avouer que c'est pas mal.
    Du coup dans la déclaration globale de la fenêtre j'ai écris:
    Code windev : 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    sReqVente est une chaîne
     
    //La requete ci-dessous affiche les ventes et la sommes des quantités vendues
    sReqVente = [
    	SELECT 
    	VENTE_LIGNE_2020.IDproduit AS Code,
    	PRODUIT.produit_ref_produit AS Reference,
    	PRODUIT.produit_nom_produit AS Designation,
    	PRODUIT_COULEUR.Couleur_Nom AS Couleur,
    	FOURNISSEUR.Nom_fournisseur AS Fournisseur,
    	SUM(VENTE_LIGNE_2020.Panier_Ligne_Quantite) AS Quantite
     
    FROM 
    	VENTE_LIGNE_2020
    	left outer join PRODUIT ON VENTE_LIGNE_2020.IDproduit = PRODUIT.IDproduit
    	left outer join PRODUIT_COULEUR ON PRODUIT_COULEUR.IDcouleur = PRODUIT.IDcouleur
    	left outer join FOURNISSEUR ON FOURNISSEUR.IDfournisseur = PRODUIT.IDfournisseur
     
    GROUP BY
    	VENTE_LIGNE_2020.IDproduit,
    	PRODUIT.produit_ref_produit,
    	PRODUIT.produit_nom_produit,
    	PRODUIT_COULEUR.Couleur_Nom,
    	FOURNISSEUR.Nom_fournisseur
    ]
     
    sdMaRequeteVente est une Source de Données
     
    SI PAS HExécuteRequêteSQL(sdMaRequeteVente, sReqVente) ALORS
    	Erreur(ErreurInfo(errComplet))
     
    SINON
     
    	POUR TOUT sdMaRequeteVente 
     
    		TableAjouteLigne(TABLE_SansNom1, "", sdMaRequeteVente.Code, sdMaRequeteVente.Reference,...
    		sdMaRequeteVente.Designation, sdMaRequeteVente.Couleur, sdMaRequeteVente.Fournisseur, sdMaRequeteVente.Quantite)
     
    	FIN
    FIN

    J'ai essayé des trucs mais sans résultat et notamment ce qui me paraissait le plus logique en rajoutant les lignes 10 à 34
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    sReqVente = [
    	SELECT 
    	VENTE_LIGNE_2020.IDproduit AS Code,
    	PRODUIT.produit_ref_produit AS Reference,
    	PRODUIT.produit_nom_produit AS Designation,
    	PRODUIT_COULEUR.Couleur_Nom AS Couleur,
    	FOURNISSEUR.Nom_fournisseur AS Fournisseur,
    	SUM(VENTE_LIGNE_2020.Panier_Ligne_Quantite) AS Quantite,
     
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_A1
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 1),
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_A2
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 2),
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_L1
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 3),
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_S1
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 4),
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_S2
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 5),
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_M1
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 6)
     
    FROM 
    	VENTE_LIGNE_2020
    	left outer join PRODUIT ON VENTE_LIGNE_2020.IDproduit = PRODUIT.IDproduit
    	left outer join PRODUIT_COULEUR ON PRODUIT_COULEUR.IDcouleur = PRODUIT.IDcouleur
    	left outer join FOURNISSEUR ON FOURNISSEUR.IDfournisseur = PRODUIT.IDfournisseur
     
    GROUP BY
    	VENTE_LIGNE_2020.IDproduit,
    	PRODUIT.produit_ref_produit,
    	PRODUIT.produit_nom_produit,
    	PRODUIT_COULEUR.Couleur_Nom,
    	FOURNISSEUR.Nom_fournisseur
     
    ]

    Testée individuellement chacune des requêtes affiche le résultat. Ce que je n'ai réussi à faire c'est combiner les deux.

    Merci pour vos conseils.

    Bien à vous.

    Grégus

    [EDIT] Petite précision, lorsque j'ai testé la requête ci-dessus, dans "TableAjouteLigne" j'avais ajouté sdMaRequeteVente.Quant_A1, sdMaRequeteVente.Quant_A2... [/EDIT]

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 233
    Par défaut
    Ta première requête a l'air correcte.
    Elle te donne des résultats cohérents ?

    Ta 2ème requête est très compliquée.
    Si je résume, tu fais :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ..., (select  .... from ... ) 
    FROM
    ...

    J'ai déjà vu des requêtes aties comme ça, il y en a qui ont essayé, ils ont eu des résultats.

    Des requêtes, j'en ai fait quelques milliers dans ma vie, et je crois que je n'en ai jamais fait de ce type. Et je ne suis pas sûr du tout que HFSQL accepte cette mécanique.

    Peux-tu expliquer ce que tu veux obtenir (en français, pas en SQL), et on verra comment s'en sortir.
    Dans un premier temps, parlons uniquement de ce que tu appelles QUANT_A1.
    Quand on saura traiter QUANT_A1, on devrait savoir faire les autres colonnes.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 16
    Par défaut
    La 1ere syntaxe est plutôt bien.
    QU'est ce qu'il ne va pas ?


    La seconde syntaxe est a proscrire.

    NB : ne changez pas votre modèle de donnée a cause d'une requête complexe à écrire. Restez toujours normalisé.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 125
    Par défaut
    Bonjour ben34fr,

    Citation Envoyé par ben34fr Voir le message
    La 1ere syntaxe est plutôt bien.
    QU'est ce qu'il ne va pas ?


    La seconde syntaxe est a proscrire.

    NB : ne changez pas votre modèle de donnée a cause d'une requête complexe à écrire. Restez toujours normalisé.
    La première syntaxe fonctionne et donne le résultat souhaité.

    La deuxième syntaxe c'est ce que j'ai testé mais qui ne fonctionne pas.

    N'étant pas professionnel je découvre au fur et à mesure de mes essaie. Du coup je suis beaucoup dans l'hésitation quand aux changement de modèle de donnée. Je ne suis pas certain d'avoir fait les bon choix au départ.

    Citation Envoyé par ben34fr Voir le message
    QU'est ce qu'il ne va pas ?
    En fait, dans la même requête je n'arrive pas (en même temps c'est peut-être pas possible) à avoir la liste des articles vendus et les quantités restantes des articles vendus pour chacune des succursales.

    [EDIT] Pas vu le message précédent, je regarde et j'essaie [/EDIT]

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 125
    Par défaut
    tbc92 me demandait si les résultats étaient cohérents.
    J'ai répondu "oui". Sur les conseils qui me sont parvenus et la relecture de quelques posts évoquant les sous requêtes, j'ai imbriqué des calculs à ma première requête et la des incohérences dans les résultats.

    J'ai réfléchi à la "cohérence" et comme cela me faisait faire trop de vérification, j'ai songé qu'en partant de la table PRODUIT et des "IDproduit" comme j'en connais le nombre il y a là une cohérence simplissime. J'ai 23173 IDproduit, je dois avoir à l'affichage dans mon champ table 23173 lignes.
    Je trouvais que c'était une première bonne cohérence.
    Du coup j'ai décidé de reprendre ma requête pour partir du fichier de données PRODUIT et des IDproduit et de faire des sous requêtes à partir des ID produit. Et la, lorsque j'ai fait le premier calcul il y a une première incohérence. J'ai à l'affichage 23317 lignes. Voilà ce que j'écris
    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
    18
    19
    20
    21
    22
    23
     
    SELECT
    PRODUIT.IDproduit AS Code,
    PRODUIT.produit_ref_produit AS Reference,
    PRODUIT.produit_nom_produit AS Designation,
    PRODUIT_COULEUR.Couleur_Nom AS Couleur,
    FOURNISSEUR.Nom_fournisseur AS Fournisseur,
    SUM(VENTE_LIGNE_2020.Panier_Ligne_Quantite) AS Quantite
     
     
    FROM
    PRODUIT
    LEFT JOIN PRODUIT_COULEUR ON PRODUIT.IDcouleur = PRODUIT_COULEUR.IDcouleur
    LEFT JOIN FOURNISSEUR ON PRODUIT.IDfournisseur = FOURNISSEUR.IDfournisseur
    LEFT JOIN VENTE_LIGNE_2020 ON PRODUIT.IDproduit = VENTE_LIGNE_2020.IDproduit
     
    GROUP BY
    PRODUIT.IDproduit,
    PRODUIT.produit_ref_produit,
    PRODUIT.produit_nom_produit,
    PRODUIT_COULEUR.Couleur_Nom,
    FOURNISSEUR.Nom_fournisseur,
    VENTE_LIGNE_2020.Panier_Ligne_Quantite
    J'ai cherché d'où pouvait venir l'anomalie et je me suis rendu compte que le SUM ne soustrait pas les quantités qui sont en négatif.
    Code Référence Désignation Quantité
    15951 **** **** -1
    15951 **** **** 1

    Qu'est-ce que j'ai mal fait?

  6. #6
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 759
    Par défaut
    Bonjour,

    Dans ta 2ème requête de ton premier post, tu devrais mettre les "as Quant" en dehors du SELECT.
    J'essaierais 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
    sReqVente = [
    	SELECT 
    	VENTE_LIGNE_2020.IDproduit AS Code,
    	PRODUIT.produit_ref_produit AS Reference,
    	PRODUIT.produit_nom_produit AS Designation,
    	PRODUIT_COULEUR.Couleur_Nom AS Couleur,
    	FOURNISSEUR.Nom_fournisseur AS Fournisseur,
    	SUM(VENTE_LIGNE_2020.Panier_Ligne_Quantite) AS Quantite,
     
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite 
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 1) AS Quant_A1,
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite 
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 2) AS Quant_A2,
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_L1
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 3) AS Quant_L1,
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_S1
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 4) AS Quant_S1,
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_S2
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 5) AS Quant_S2,
    (SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_M1
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 6) AS Quant_M1
     
    FROM 
    	VENTE_LIGNE_2020
    	left outer join PRODUIT ON VENTE_LIGNE_2020.IDproduit = PRODUIT.IDproduit
    	left outer join PRODUIT_COULEUR ON PRODUIT_COULEUR.IDcouleur = PRODUIT.IDcouleur
    	left outer join FOURNISSEUR ON FOURNISSEUR.IDfournisseur = PRODUIT.IDfournisseur
     
    GROUP BY
    	VENTE_LIGNE_2020.IDproduit,
    	PRODUIT.produit_ref_produit,
    	PRODUIT.produit_nom_produit,
    	PRODUIT_COULEUR.Couleur_Nom,
    	FOURNISSEUR.Nom_fournisseur
     
    ]
    C'est sans aucune garantie.
    JS

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 125
    Par défaut
    Bonjour tbc92,
    Bonjour à toutes et à tous,

    Merci pour ton intérêt à ma recherche d'aide pour réaliser l'affichage que je souhaite obtenir.


    Citation Envoyé par tbc92 Voir le message
    Ta première requête a l'air correcte.
    Elle te donne des résultats cohérents ?
    Oui tout à fait, elle correspond au données qui s'affiche dans le champs table que j'avais mis en pièce jointe dans mon premier message


    Citation Envoyé par tbc92 Voir le message
    Ta 2ème requête est très compliquée.
    Si je résume, tu fais :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ..., (select  .... from ... ) 
    FROM
    ...
    Je te l'accorde et en plus elle ne fonctionne pas (sauf si j'ai fait une erreur dans le code).
    En revanche si je fais une requête seulement sur
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT RECEPTION_LIGNE.reception_ligne_quantite AS Quant_A1
    FROM RECEPTION_LIGNE
    LEFT OUTER JOIN RECEPTION ON RECEPTION.IDreception = RECEPTION_LIGNE.IDreception
    WHERE RECEPTION.IDmagasin = 1
    J'avais commencé à écrire que j'obtenais un résultat cohérent. Et puis par acquis de conscience j'ai préféré vérifié avant et en fait je n'arrive pas obtenir ce que je souhaite.


    Citation Envoyé par tbc92 Voir le message
    Peux-tu expliquer ce que tu veux obtenir (en français, pas en SQL), et on verra comment s'en sortir.
    Dans un premier temps, parlons uniquement de ce que tu appelles QUANT_A1.
    Quand on saura traiter QUANT_A1, on devrait savoir faire les autres colonnes.
    D'accord, je vais essayer de faire simple. Une image commentée...
    Nom : capture d’écran_2.jpg
Affichages : 1034
Taille : 81,8 Ko

    Dans le champ table ci-dessus, je voudrais (ce qui est déjà le cas) afficher les codes des produits vendus, avec des infos correspondantes à ces produits, la quantité des articles vendus et la quantité restante (que je n'ai pas encore réussi à faire) en stock pour chaque succursale au moment de l’exécution de la requête.

    Le code qui me permet d'obtenir l'affichage actuel
    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
    18
    19
    20
    21
     
    SELECT 
    	VENTE_LIGNE_2020.IDproduit AS Code,
    	PRODUIT.produit_ref_produit AS Reference,
    	PRODUIT.produit_nom_produit AS Designation,
    	PRODUIT_COULEUR.Couleur_Nom AS Couleur,
    	FOURNISSEUR.Nom_fournisseur AS Fournisseur,
    	SUM(VENTE_LIGNE_2020.Panier_Ligne_Quantite) AS Quantite
     
    FROM 
    	VENTE_LIGNE_2020
    	left outer join PRODUIT ON VENTE_LIGNE_2020.IDproduit = PRODUIT.IDproduit
    	left outer join PRODUIT_COULEUR ON PRODUIT_COULEUR.IDcouleur = PRODUIT.IDcouleur
    	left outer join FOURNISSEUR ON FOURNISSEUR.IDfournisseur = PRODUIT.IDfournisseur
     
    GROUP BY
    	VENTE_LIGNE_2020.IDproduit,
    	PRODUIT.produit_ref_produit,
    	PRODUIT.produit_nom_produit,
    	PRODUIT_COULEUR.Couleur_Nom,
    	FOURNISSEUR.Nom_fournisseur

    Je teste depuis ce matin indépendamment la partie "Quant_A1" mais c'est pas toujours cohérent.

    Je pose le problème.
    Pour chaque IDproduit vendu je voudrais pouvoir connaitre la quantité qu'il reste dans chaque succursale.

    J'ai essayé de défaire les nœuds mais pour l'instant sans succès.

    A vous lire. Merci

    Grégus

  8. #8
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 68
    Par défaut
    Ah, ok
    Essaye donc de passer par des sous requêtes :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Select 
        Succursale.nom,
        cumul_a.total_a,
        cumul_b.total_b,
        cumul_c.total_c
     
    from Succursale
     
        left outer join (
     
            SELECT
                Sucursale_ID,
                SUM(Vtes) AS total_a
            from ventes
            group by Sucursale_ID
     
        ) AS cumul_a ON (cumul_a.ID = Succursale.ID)
     
     
        left outer join (
     
            SELECT
                Sucursale_ID,
                SUM(Vtes) AS total_b
            from achats
            group by Sucursale_ID
     
        ) AS cumul_b ON (cumul_b.ID = Succursale.ID)
     
     
        left outer join (
     
            SELECT
                Sucursale_ID,
                SUM(Vtes) AS total_c
            from Stock
            group by Sucursale_ID
     
        ) AS cumul_c ON (cumul_c.ID = Succursale.ID)

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/09/2016, 15h34
  2. [WD12] Maj des calculs sur les fichiers de données
    Par karim15 dans le forum WinDev
    Réponses: 7
    Dernier message: 09/11/2012, 10h31
  3. Effectuer des opérations sur plusieurs fichiers txt
    Par Jim la truite dans le forum MATLAB
    Réponses: 4
    Dernier message: 11/08/2008, 23h18
  4. [Unix] problème avec des permissions sur un fichier
    Par bulbo dans le forum Administration système
    Réponses: 3
    Dernier message: 20/02/2008, 15h04
  5. Requête avec des tables de plusieurs bases
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2005, 16h56

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