J'ai écrit une requête pour Sélectionner des valeurs de ventes à partir d'une base de données et appliquer des remises si elles étaient utilisées. Les réductions sont soit un pourcentage ou simplement une valeur forfaitaire. Ma requête applique les remises (déclaration du premier cas), puis extrait le montant appliqué.Combinaison de deux résultats logiques conditionnels dans une instruction case
Il m'a fait penser si c'était possible d'obtenir ceci dans une déclaration de cas.
Requête:
SELECT
SUM(CASE
WHEN td.Transaction_ID IS NULL
THEN p.Sale
WHEN td.Transaction_ID IS NOT NULL AND d.Discount_Type = '0'
THEN p.Sale - (p.Sale * (dp.Discount_Percent/100))
ELSE
p.Sale - dv.Discount_Value
END) PriceDiscounted,
SUM(CASE
WHEN td.Transaction_ID IS NOT NULL AND d.Discount_Type = '0'
THEN (p.Sale * (dp.Discount_Percent/100))
WHEN td.Transaction_ID IS NOT NULL AND d.Discount_Type = '1'
THEN dv.Discount_Value
ELSE '0'
END) Discount
Désolé - Je n'ai pas remarqué le mysql dans votre question: ma réponse était spécifique à ms-sql. – davek