le combien_qu_on_ma_chouré.sql
et un truc du genre
l'idée est de prendre en compte l'ensemble des variations (V) par disque et l'ensemble des lignes de vente (L) par disque en jointure avec la table des Disques D
Ensuite de ne sortir que les disques dont la qté en stock est diférente de ( la sum des variations (En + ou en -) moins le nombre (count(*) 1 seul disque par vente ) de ligne de vente du disque)
J'ai bien compris ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Select
D.disque_id, D.dsq_qte_stock , V.sum_variation - L.count_les_lignes
from
(Select var_disque_id , sum(var_quantité) sum_variation
From Variation
Group by var_disque_id ) V ,
(Select var_disque_id,count(*) count_les_lignes
From
Ligne_Panier ) L ,
Disque D
Where
D.disque_id = V.var_disque_id And
D.disque_id = L.var_disuqe_id And
D.dsq_qte_stock != (V.sum_variation - L.count_les_lignes) |
Good Syntaxe : Avec ORACLE
Avec ORACLE : Good Syntaxe
Exemple :oops:
Je repete c'est juste un exemple !!! :P
Les disques
Code:
1 2 3 4 5 6 7 8 9 10 11
| Create Table Disque
(
Disque_id varchar2(13) ,
dsq_qte_stock number
);
insert into disque values('DSK1',10);
insert into disque values('DSK2',20);
insert into disque values('DSK3',1);
Ligne_Panier |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Create Table Ligne_Panier
(
lpa_disque_id varchar2(13) ,
lpa_date_vente date
);
insert into Ligne_panier values('DSK1',sysdate);
insert into Ligne_panier values('DSK1',sysdate);
insert into Ligne_panier values('DSK1',sysdate);
insert into Ligne_panier values('DSK1',sysdate);
insert into Ligne_panier values('DSK1',sysdate);
insert into Ligne_panier values('DSK2',sysdate);
insert into Ligne_panier values('DSK2',sysdate);
insert into Ligne_panier values('DSK2',sysdate);
insert into Ligne_panier values('DSK2',sysdate);
insert into Ligne_panier values('DSK2',sysdate); |
Variation
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Create Table Variation
(
var_disque_id varchar2(13),
var_quantite number
);
insert into Variation values('DSK1',-10);
insert into Variation values('DSK1',+02);
insert into Variation values('DSK1',+02);
insert into Variation values('DSK1',+02);
insert into Variation values('DSK1',+02);
insert into Variation values('DSK1',+02);
insert into Variation values('DSK2',-10);
insert into Variation values('DSK2',-10); |