21-05-17, 10:39 PM
يوجد اختصار للجزئية المطلوبة أي بدون CAST
ولتوضيحها فهي تعادل If Then Else
If = CASE WHEN
Then = THEN
Else = ELSE
انا لم أكن أعرفها إلا الآن بفضل سؤالك ومحاولة ايجاد جوابه
حتى أنا تتعامل مع تعدد الحالات مثل
ويمكن كتابة الاستعلام بالشكل التالي ويعمل ايضا
كود :
SELECT Facture_L.Num_Vent,
Facture_L.Num_Fact_Vent,
Facture_L.ID_Prod,
Facture_L.UM,
UM.Nom_UM,
(CASE WHEN (Facture_L.UM = 1) THEN (Facture_L.Qte_V * 0.02) ELSE (Facture_L.Qte_V) END) AS Qte,
Facture_L.Prix_V
FROM Facture_L
INNER JOIN UM ON Facture_L.UM = UM.ID_UMولتوضيحها فهي تعادل If Then Else
If = CASE WHEN
Then = THEN
Else = ELSE
انا لم أكن أعرفها إلا الآن بفضل سؤالك ومحاولة ايجاد جوابه
حتى أنا تتعامل مع تعدد الحالات مثل
كود :
CASE Facture_L.UM
WHEN 1 THEN (Facture_L.Qte_V * 0.02)
WHEN 2 THEN (Facture_L.Qte_V * 0.04)
WHEN 3 THEN (Facture_L.Qte_V * 0.06)
WHEN 4 THEN (Facture_L.Qte_V * 0.08)
WHEN 5 THEN (Facture_L.Qte_V * 0.10)
ELSE (Facture_L.Qte_V)
END AS Qteويمكن كتابة الاستعلام بالشكل التالي ويعمل ايضا
كود :
SELECT Facture_L.Num_Vent,
Facture_L.Num_Fact_Vent,
Facture_L.ID_Prod,
Facture_L.UM,
UM.Nom_UM,
(CASE (Facture_L.UM) WHEN (1) THEN (Facture_L.Qte_V * 0.02) ELSE (Facture_L.Qte_V) END) AS Qte,
Facture_L.Prix_V
FROM Facture_L
INNER JOIN UM ON Facture_L.UM = UM.ID_UM