Après quelques essais, j'ai un problème.
Actuellement, l'historique ne compte qu'une et une seule entrée par variété.
La raison est simple, l'entrée du volume total se fait en une seule fois.
Par contre je peux avoir plusieurs sorties au fur et à mesure de la saison.
hinat hivar hidte hiqte
char char date int
- entree | varieteX | 22/02/06 | 150
- sortie | varieteX | 12/01/06 | 20
- sortie | varieteX | 27/02/06 | 80
stvar stqte
char int
varieteX | 50
Je vais tâcher d'être plus clair.
Si j'exécute :
Code :
- SELECT
- stvar,
- entree.hiqte,
- sortie.hiqte,
- FROM
- stock
- LEFT OUTER JOIN historique AS entree ON ( entree.hivar = stvar AND entree.hinat='entree')
- LEFT OUTER JOIN historique AS sortie ON ( sortie.hivar = stvar AND sortie.hinat='sortie')
|
J'obtiens :
VarieteX | 150 | 20
VarieteX | 150 | 80
Maintenant, j'execute :
SELECT
stvar,
sum(entree.hiqte),
sum(sortie.hiqte),
FROM
stock
LEFT OUTER JOIN historique AS entree ON ( entree.hivar = stvar AND entree.hinat='entree')
LEFT OUTER JOIN historique AS sortie ON ( sortie.hivar = stvar AND sortie.hinat='sortie')
GROUP BY stvar |
J'obtiens :
VarieteX | 300 | 100
Les entrées ont été comptées 2 fois parceque il y avait 2 sorties ...
Je vais chercher de mon côté mais si quelqu'un passe par là et connaît la solution, je le remercie par avance
EDIT
Bon jsuis un boulay, il suffit de faire
Code :
- SELECT
- stvar,
- entree.hiqte,
- sum(sortie.hiqte),
- FROM
- stock
- LEFT OUTER JOIN historique AS entree ON ( entree.hivar = stvar AND entree.hinat='entree')
- LEFT OUTER JOIN historique AS sortie ON ( sortie.hivar = stvar AND sortie.hinat='sortie')
- GROUP BY stvar
|
Par contre ca ne marche que si il y a une et une seule entrée par variété (mon cas actuellement).
Si quelqu'un sait comment faire la même requête pour admettons 2 entrées et 3 sorties sur la même variété sans se tapper un produit carthésien de neuneu, ca m'intéresse, dès fois que la structure évolue
Message édité par jeoff le 07-03-2006 à 11:08:13