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) :
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
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)
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 ?
Partager