これが私のSQLコードです。各行の価格と各行のマイルストーン、およびテーブルを結合するための ID を選択しましたが、1 行の結果しかありません。
複数のフィルターを実行する PHP コード:
if($i==0)
{
if($fc == "projet")
{
$filtre_bdd .= "AND p.$fc = '$fv' ";
}
else
{
$filtre_bdd .= "AND cible.$fc = '$fv' ";
$i= $i + 2;
}
}
SQL クエリ:
SELECT cible.prix,a.valeur,a.idroute,cible.id,p.id,
SUM(DISTINCT a.valeur) AS total_avances, /* the milestone sum the unique one */
SUM(a.valeur) AS total_avance, /* the milestone sum of each row */
SUM(cible.prix) AS total_prix /* the price sum */
FROM avances AS a,routes AS cible,projets AS p
WHERE a.idroute = cible.id AND p.id = cible.idprojet $filtre_bdd /* the conditions to join the tables and do the filter */
GROUP BY cible.id, a.idroute
HAVING total_avances <> cible.prix AND cible.prix - total_avances >- 1
これらすべての条件で、価格の合計とマイルストーンの合計を取得するにはどうすればよいでしょうか? 対象のテーブルには、プロジェクトの ID とマイルストーンの ID が含まれています。各行のマイルストーンの合計と合計の合計を実行し、それをプロジェクトの価格と比較する必要があります。