CAS Énoncé dans la clause SQL where
Je suis en train de récupérer des données à partir de la table où je suis à l'aide d'un CASE
condition dans la WHERE
clause et actuellement je suis en utilisant la requête suivante:-
SELECT count(enq_id) AS total, sum(purchase_amount) AS purchase
FROM temp_stock
WHERE purchase_date <> '0000-00-00'
AND purchase_date < '2012-08-01'
AND (
STATUS = 'Sold'
OR STATUS = 'In Stock'
OR STATUS = 'Ref'
)
AND CASE WHEN (
STATUS = 'Sold'
)
THEN delivery_date >= '2012-08-01'
END
Mais il renvoie 0
pour total
et NULL
pour purchase
.
Vous devez vous connecter pour publier un commentaire.
De votre commentaire.
Vous pouvez utiliser
CASE
déclaration dansWHERE
comme ceci:Ici, vous devez utiliser
ELSE 1=1
. sinon, vous n'obtiendrez pas le résultat souhaité. Pour plus d'explication voir cette SQLFiddleJe ne pense pas que ce CAS peut travailler de cette façon. Ce que vous voulez, c'est un peu plus complexe de l'expression en tant que votre clause where. Probablement quelque chose comme ceci: