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 : 1092
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]