Bonjour
j'ai une requête :
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
 
select distinct m.reference, date_heure 
from 
        ( select reference, sum(valeur) as val 
          from mouvements 
          where sens = 'D' group by (support, reference)
         ) ref, 
         mouvements m 
where (
       ref.val <m.valeur 
     and m.reference = ref.reference 
     and m.sens = 'C') 
     or m.reference not in 
               (select reference from mouvements where sens = 'D') 
order by date_heure
1) J'aimerais en fait récupérer toutes les références de sens 'C' qui ont une valeur supérieur à la somme des valeurs des enregistrements de sens 'D' ayant la même référence... (clair? lol) Ma requete fonctionne et je récupère dans mon résultat toute les références désirée ainsi que les date_heure correpondantes.
Mais je voudrais savoir si j'ai la possibilité de récupérer dans mon résultat la valeur correspondant à mon enregistrement de sens 'C' moins la somme des valeurs de sens 'D'.
Ou plus simplement, comme la fonction SUM, est il possible de faire un MOINS(m.valeur, ref.val)

2) J'aimerais savoir si il y a moyen de la simplifier;

Ma table est toute simple :

reference varchar
sens varchar
valeur varchar
date_heure date