我的查询嵌套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