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.
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]
Partager