我有一个sql2008服务器,我需要在其中计算折扣。
在游戏领域是SuggestedRetailPrice
,BasePrice
和AdPrice
逻辑是这样的:
if AdPrice is null
return baseprice/suggestedretailprice
else
if AdEndDate < GETDATE() // Ad is still valid
return adprice/SuggestedRetailPrice
endif
endif
如果以上令人困惑,这是我需要做的:
通过比较AdEndDate和GETDATE()来确定是否使用AdPrice或BasePrice,具体取决于广告是否已过期。然后使用该字段并除以uggestedRetailPrice,然后与一个值进行比较。IE(AdPrice/SuggestedRetailPrice) >= 0.6
一个查询甚至可以做到这样的事情?我知道有案例陈述,但我不确定它们是否适用于这种情况。
您还可以在其中嵌入CASE语句ISNULL()
以进一步简化它:
SELECT
ISNULL
(
CASE
WHEN AdEndDate < GETDATE()
THEN AdPrice
END,
BasePrice
) / SuggestedRetailPrice
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句