Hallo Ich versuche, eine If-Anweisung in SQL Select-Abfrage zu machen, möchte ich nur anwenden, wenn Variable $ Abteilung ist anders als NULL. Wenn die Variable unterschiedlich ist, dann setzen Sie P2.department = P1.department
als AND-Klausel.Haben AND-Klausel, wenn die Variable in MySQL nicht null ist Wählen Sie
Die Abfragezeile ist wie folgt:
,(SELECT SUM(P2.fee) FROM cases P2 WHERE
IF('$department' IS NULL, 0, P2.department = P1.department) AND curency = 1) as fee_USD
In der aktuellen Situation die Abfrage funktioniert, aber es zeigt falsche Ergebnisse. Meine Frage ist, das ist der beste Weg, P2.department = P1.department AND
in die Abfrage aufzunehmen. Jede Hilfe ist willkommen. Hier
ist die vollständige Abfrage:
SELECT
P1.id
,P1.department
,P1.curency
,P1.fee
,count(P1.id) as count_cases
,(SELECT SUM(P2.fee) FROM cases P2 WHERE
IF('$department' IS NULL, 0, P2.department = P1.department)
AND curency = 1) as fee_USD
FROM cases P1 WHERE 1";
if (!empty($department)) { $sql .= " AND P1.department = '$department'"; }
if (!empty($status)) { $sql .= " AND P1.status = '$status'"; }
Sie die Abfrage Verkettung als Zeichenfolge verwenden kann, nachdem Sie den Test auf null zu tun und führe es später aus !! versuchen Sie bitte mehr Ihre Anfrage zu klären bitte – PacMan