내 SELECT 쿼리는 모두 아래에서 작동하며 두 개의 개별 결과로 값을 반환합니다. 첫 번째 SELECT 문이 0을 반환하고 작업의 특성으로 인해 두 번째 작업이 가능한 경우 0을 반환하는 첫 번째 작업을 무시하고 실행하고 싶습니다. 첫 번째 결과가 0보다 큰 결과를 반환하는 경우 두 번째 실행을 원하지 않습니다.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
간단한 'if'구문을 사용할 수 없습니까? – FDavidov