bonsoir tout le monde
pour une base de données firebird 2.1
je sèche un peu sur une requête sql normalement simple,
c'est une gestion de stock classique avec les tables :
je voudrais que pour chaque ligne de fournisseur aficher le solde (somme des reglements - somme des achars)
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 CREATE TABLE fournisseurs ( id integer NOT NULL PRIMARY KEY, nom varchar(255), ) CREATE TABLE achats ( id integer NOT NULL PRIMARY KEY, id_fournisseur integer , /*clé etrangère*/ date_facture date ) CREATE TABLE achats_details ( id integer NOT NULL PRIMARY KEY, id_achat integer , /*clé etrangère*/ prix numeric(14,2), qte integer ) CREATE TABLE reglements ( id integer NOT NULL PRIMARY KEY, id_fournisseur integer , /*clé etrangère*/ montant numeric(14,2) )
la somme des achats doit être calculée a partir de la table achat_details (sum(prix*qte))
j'ai tenté un truc du genre :
mais je ne suis pas très sûr si c'est juste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Select A.ID_FOURNISSEUR, A.FR_NOM, (select sum(d.ad_prix_ht * d.ad_qte) from achats_details d where (select ac.ac_id_fournisseur from achats ac where ac.id_achat = d.ad_id_achat) = a.id_fournisseur ) - (select sum(r.reg_montant) from reglements r where r.reg_id_fournisseur = a.id_fournisseur ) From fournisseurs a group by 1,2
en plus il faut gérer les valeurs nulles potentiellement retournées par les deux sous requêtte sum
merci et bonne fin de journée
Partager