我的SELECT查询都在下面工作,并将返回值作为两个单独的结果。我想要做的是,如果第一个SELECT语句返回一个0,并且有时候是由于我们工作的性质,我希望第二个SELECT语句忽略第一个返回零,如果可能的话。如果第一个返回大于零的结果,那么我不希望第二个运行。SQL - 如果计数结果= 0,则运行第二个查询
我一直在寻找和尝试不同的IF ELSE等,但由于使用的具体日期/时间公式,我认为这可能是不可能的,或者我可能不得不重写。这是有目的的,但我不会让你生气。提前致谢!
Declare @StartDate as DateTime
Declare @EndDate as DateTime
Declare @TodaysDate as DateTime
Declare @Previous as DateTime
Declare @Previous2 as DateTime
set @TodaysDate = GETDATE()
set @Previous = DATEADD(day,-1,@TodaysDate)
set @Previous2 = DATEADD(day,-2,@TodaysDate)
-- SELECT Statetment one starts here
set @StartDate = cast(convert(varchar(4), datepart(yyyy, getdate())) + '-' +
convert(varchar(2), datepart(mm, @Previous)) + '-' +
convert(varchar(2), datepart(dd, @Previous)) + ' ' +
'05:00' as datetime)
set @EndDate = cast(convert(varchar(4), datepart(yyyy, getdate())) + '-' +
convert(varchar(2), datepart(mm, @Previous)) + '-' +
convert(varchar(2), datepart(dd, @Previous)) + ' ' +
'16:59' as datetime)
SELECT Count(*) as FirstShfitPrevious
FROM [TOL_PROD_DB].[dbo].[tblLOT_CTRL_Active_Component]
WHERE Close_Time_Stamp between @StartDate and @EndDate
-- Query 2 Starts, Declarations already made at beginning
set @StartDate = cast(convert(varchar(4), datepart(yyyy, getdate())) + '-' +
convert(varchar(2), datepart(mm, @Previous2)) + '-' +
convert(varchar(2), datepart(dd, @Previous2)) + ' ' +
'05:00' as datetime)
set @EndDate = cast(convert(varchar(4), datepart(yyyy, getdate())) + '-' +
convert(varchar(2), datepart(mm, @Previous2)) + '-' +
convert(varchar(2), datepart(dd, @Previous2)) + ' ' +
'16:59' as datetime)
SELECT Count(*) as FirstShfitPrevious2
FROM [TOL_PROD_DB].[dbo].[tblLOT_CTRL_Active_Component]
WHERE Close_Time_Stamp between @StartDate and @EndDate
难道你不是我们一个简单的'如果'结构? – FDavidov