声明时请协助处理案件

时间:2015-07-17 01:59:37

标签: sql if-statement case case-when case-statement

我想在查询中创建case语句时获得一些帮助。

我有以下查询我正在尝试修改

CASE    WHEN Hotelexpenses between CONVERT(varchar(10), getdate(),121)  and convert(varchar(10),DATEADD(mm,6,getdate()),121) 
                and engagementexpenses between CONVERT(varchar(10), getdate(),121) and convert(varchar(10),DATEADD(mm,6,getdate()),121)
                and travelexpenses between CONVERT(varchar(10), getdate(),121) and convert(varchar(10),DATEADD(mm,6,getdate()),121)
        THEN 'Yes'
        else 'NO' 
End As combinedflag

我想添加附加条件,让我们说hotelexpenses,当hoteexpenses> 100美元,参与活动费用> 100.00和travelexpenses> 100.00如果除了我的案例陈述之外,如果满足上述任何条件,则该标志应该是“是”'是否则'否'结束为ABC

现在,在条件仅满足条件但不满足其他两个条件的情况下,如果hotelexpenses> 100.00且剩下的两个<100.00,则标志应为yes。 (有道理吗?)但如果所有3个匹配日期标准且不符合金额,则该标志应为否。

所以我的主要问题是如何使用&#39;和&#39; &安培; &#39;或&#39;在声明中。有可能吗?

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

你正在寻找这个: -

CASE    WHEN Hotelexpenses between CONVERT(varchar(10), getdate(),121)  and convert(varchar(10),DATEADD(mm,6,getdate()),121) 
                and engagementexpenses between CONVERT(varchar(10), getdate(),121) and convert(varchar(10),DATEADD(mm,6,getdate()),121)
                and travelexpenses between CONVERT(varchar(10), getdate(),121) and convert(varchar(10),DATEADD(mm,6,getdate()),121)
                and (hotelexpenses > 100 OR engagementexpenses > 100 OR travelexpenses > 100) 
        THEN 'Yes'
        else 'NO' 
End As combinedflag