Bonjour et désolé pour le titre mais je voyais pas trop quoi mettre
J'ai 3 tables (euh en fait plus mais seulement ces 3 la sont concernées) :
- Disque :
disque_id clé primaire
dsq_qte_stock quantité en stock de ce disque
dsq_code_barre code barre du disque
...
Variation de stock -> tous les ajouts en stocks(+) ou régularisation(+ ou -) (mais pas les ventes):
variationstockid clé primaire
var_quantite quantité ajouté ou enlevé
var_disque_id clé étrangère vers la table disque
...
Lignepanier -> toutes les lignes de vente (la quantité est toujours 1) :
lignepanier_id clé primaire
lpa_disque_id clé étrangère vers la table disque
...
ce que je veut faire c'est lister tous les disques ayant une quantite en stock (champ dsq_qte_stock) incoherante par rapport à l'historique des ventes et des achats.
En plus clair, je dois lister tous les disques dont le total des var_quantite moins le nombre de lignepanier est différent de la dsq_qte_stock
voici la requete que j'ai testé :
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 select disque_id, dsq_code_barre as code_barre, sum(var_quantite) as variation_stock, count(lignepanier_id) as ventes, dsq_qte_stock as qte_stock, (sum(var_quantite) - count(lignepanier_id)) as qte_stock_calcule from variationstock, lignepanier, disque disques where var_disque_id = disque_id and disque_id = lpa_disque_id and dsq_qte_stock != ( select sum(var_quantite) from variationstock, disque where var_disque_id = disque_id and disque_id = disques.disque_id ) - ( select (count(lignepanier_id)) from lignepanier, disque where disque_id = lpa_disque_id and disque_id = disques.disque_id ) group by disque_id, dsq_code_barre, dsq_qte_stock
avec cette requete je n'ai pas le résultat escompté et je ne vois pas ce qu'il faut faire.
En fait c'est le calcul de la variation de stock et des ventes qui pose problème. Après quelques tests je me suis appercu que le total des variations de stock que j'obtien est égale à lui même * le total des ventes. je n'est pas réussi à déterminé ce qu'il en était pour le calcul des ventes...
merci d'avance...
Partager