2016-07-23 42 views
-1

我有一個查詢捕獲多條件的總和(見下文),但是,我想做同樣的事情,但如果可能的話在case語句。總結在sql server中的多個條件

原始查詢:

select 
sum(Total Cost) 
from Table 
where date between '7/20/2016' and '7/21/2016' 
and customer = "New Customer" 
and sales like 's%' 

我試圖把在一個case語句。

select 
sum(case when total cost is not null then 1 else 
    case when customer = 'New Customer' then 1 else 
    case when sales like 's%' then 1 else 
    end end end 
from table 
where date between '7/20/2016' and '7/21/2016' 

感謝您的幫助

+1

編輯您的問題,並提供樣本數據和期望的結果。你的邏輯並不合理。 。 。你似乎想要一個總是返回1的'case'表達式。 –

回答

0

我認爲你正在尋找的東西是這樣的:

SELECT SUM(CASE WHEN customer = 'New Customer' AND sales LIKE 's%' THEN [Total Cost] END) 
FROM Table 
WHERE [date] BETWEEN '2016-07-20' AND '2016-07-21' 

請注意 - 在你的問題的第二個查詢等效於count,不sum。此外,當使用字符串來表示日期時,總是使用yyyy-mm-dd格式,以避免模棱兩可 - 在sql server中 - 1/4/2016可能是4月1日,但也可能是1月4日。不過,2016-04-01只能是4月1日。

+0

感謝你對你提供的查詢的迴應......基礎,我沒有得到想要的結果......它返回空值 當我運行第一個查詢(原始),總費用總計高達80,463 – ZYK

+0

然後請編輯您的問題,以包括示例數據爲DDL + DML和期望的結果。 –