我的查詢嵌套Case語句在SQL查詢
Declare @From DateTime='01 Feb 2013'
Declare @To DateTime='28 Feb 2013 23:59:59'
Select
Case
When
(
Select TOP 1 f1.UpdatedOn
From TicketTypeFollowUp As f1 with(nolock)
Where f1.UpdatedOn<T.UpdatedOn And f1.Ticket=T.Ticket
Order By f1.UpdatedOn Desc
)IS Null
Then Ticket.TicketRaisedOn
Else
(
Select TOP 1 f1.UpdatedOn
From TicketTypeFollowUp As f1 with(nolock)
Where f1.UpdatedOn<T.UpdatedOn And f1.Ticket=T.Ticket
Order By f1.UpdatedOn Desc
) End [Start Date]
From dbo.TicketTypeFollowUp T with(nolock)
--Some Tables Omitted
Where CAST(TicketRaisedOn As Date)Between ''+Convert(VarChar(19), @From, 100)+'' And ''+Convert(VarChar(19), @To, 100)+''
如果列[Start Date]
具有值大於@To
然後@To
值應打印否則[開始日期]列
我怎樣才能把它寫在相同的查詢?
我想什麼
Case When(
Case
When
(
Select TOP 1 f1.UpdatedOn
From TicketTypeFollowUp As f1 with(nolock)
Where f1.UpdatedOn<T.UpdatedOn And f1.Ticket=T.Ticket
Order By f1.UpdatedOn Desc
)IS Null
Then Ticket.TicketRaisedOn
Else
(
Select TOP 1 f1.UpdatedOn
From TicketTypeFollowUp As f1 with(nolock)
Where f1.UpdatedOn<T.UpdatedOn And f1.Ticket=T.Ticket
Order By f1.UpdatedOn Desc
) End [Start Date]
)> @To Then @To Else [Start Date] End,
DB:SQL SERVER 2008
你在修改上面提到的查詢方式時得到的錯誤是什麼? – 2013-05-09 12:06:08
乍一看,您嵌套'CASE-END'查詢看起來很合理。它出什麼問題了?你有任何錯誤?你的結果與你期望看到的不同嗎? – 2013-05-09 12:46:17