之間的情況我有一個腳本,我想從某些日期相應地從db中提取值。SQL Server:WHERE子句與
我有一個返回日期的函數,這個日期可以是currentDate - 1個月,或者可以是curentDate -2個月。該功能是
set @syssDate = DATEADD(month, -1, @syss_date);
,我宣佈一個起始日期:
declare @start_quarter datetime
set @start_quarter = '2015-07-01';
所有我想在我的WHERE
條款添加
case
when syssDate = start_quarter
then bu.date between '2015-01-01' and '2015-10-01'
else -- another date
我的查詢是這樣的:
declare @start_quarter datetime
set @start_quarter = '2015-01-01';
declare @actual_Date datetime
set @actual_Date = DATEADD(month, -1, @rollover_date);
select sum(t.Revenue) as Revenue from (
select sum(bu.value) as Revenue
from bus_category_for bu
join bus_category buc on buc.id=bu.bus_category_id
join bus bu on bu.id=buc.bus_id
where buc.type_id=18 and bu.id=21 and
--Here I want to add a case statement
bu.date between '2015-01-01' and '2015-10-01'
T-SQL中的CASE是一個**表達式**(比如'a + b'),它可以返回**,原子值** - 它是** NOT **流控制語句,所以你不能在其中包含完整的代碼塊。 –
以及如何解決它?我如何使用'case'語句? –
這對於'CASE'來說不是一個好的情況 - 你必須有兩個** CASE表達式 - 一個用於第一個日期,另一個用於BETWEEN中的第二個日期.... 。更好地使用由已經回答的人提供的解決方案 –