Bonjour,

Voilà j'ai une requête à faire entre deux tables, l'objectif étant de n'afficher les lignes de la table 1 que si la somme d'une colonne de la table 2 est inférieur à un champ fixé dans la table 1

Soit en plus clair :

TABLE 1
Idtable1 1
Limite 500

TABLE 2
IDtable2 1
DATE 20081206
VAL 1
IDtable1 1

IDtable2 2
DATE 20081206
VAL 1
IDtable1 1

Voici ma requête (fausse sans doute) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
select * 
from table1 
where NOT EXISTS (select sum(VAL) as valeur 
                  from table2 
                  where table2.idtable1=table1.idtable1 
                     and date=CURDATE() 
                     and valeur<table1.limite)
L'objectif est d'afficher tous les éléments de la table1 pour lesquels la somme du champ VAL de la table 2 est inférieur au champ LIMITE de la table 1 et est égale à la date du jour. On joindra les deux tables sur l'id de la table1
Si on ne trouve pas d'élément dans la table 2, la ligne de la table 1 doit sortir
L'idée est de gérer une limitation définit par la table 1 par exemple limité à 500
On fait la somme des correspondances dans la table 2 sur la colonne VAL et si c'est inférieur on affiche la ligne de la table 1 sinon on ne l'affiche pas
le NOT EXISTS ne fonctionnera sans doute pas ici
Vous pensez que celà pourrait marcher ?