Click here to Skip to main content
15,889,852 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
SQL
IF(DATEPART(dd,GETDATE())=(SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),112))
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT SUBSTRING(CONVERT(VARCHAR(25),DATEADD(mm, DATEDIFF(m,0,getdate())-1,0),112),1,6)+’16′)
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT SUBSTRING(CONVERT(VARCHAR,GETDATE(),112),1,6)+’16′)
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),112))
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),112))
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT SUBSTRING(CONVERT(VARCHAR(25),DATEADD(mm, DATEDIFF(m,0,getdate())-1,0),112),1,6)+’16′)
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT SUBSTRING(CONVERT(VARCHAR,GETDATE(),112),1,6)+’16′)
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) <=CONVERT(VARCHAR,GETDATE(),112) GROUP BY VCR_PAY_TO
END

–UNION ALL

IF(DATEPART(dd,GETDATE())=(SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),112))
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT SUBSTRING(CONVERT(VARCHAR(25),DATEADD(mm, DATEDIFF(m,0,getdate())-1,0),112),1,6)+’16′)
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT SUBSTRING(CONVERT(VARCHAR(25),DATEADD(mm, DATEDIFF(m,0,getdate())-1,0),112),1,6)+’16′)
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT SUBSTRING(CONVERT(VARCHAR,GETDATE(),112),1,6)+’16′)
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),112))
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) =(SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),112))
AND CONVERT(VARCHAR,VCR_VOUCHER_DT,112) <=CONVERT(VARCHAR,GETDATE(),112) GROUP BY VCR_PAY_TO
END
hi all, i need to make union of this 'two if condition' Queries with groupby clause,
please help…… Thanks in advance
Posted
Updated 7-Aug-11 21:25pm
v4

This won't solve your immediate problem, but it is a very bad idea to do repeated calls to GETDATE - if the database server time approaches midnight, you can get some very strange, intermittent bugs which can be next to impossible to track down. Instead, declare server variables which hold the current date and / or the relevant components. You may find this improves your execution performance at the same time.
 
Share this answer
 
I agree with OriginalGriff!

Try to use variables and see results:
SQL
SET DATEFORMAT ymd; 

DECLARE @aDay VARCHAR(25)
DECLARE @eDay VARCHAR(25)
DECLARE @aQry1 VARCHAR(2000)
DECLARE @aQry2 VARCHAR(2000)
DECLARE @aQry3 VARCHAR(2000)

SET @aDay = CONVERT(VARCHAR, GETDATE())
SET @eDay = CONVERT(VARCHAR, DATEADD(dd,-(DAY(@aDay)-1),@aDay))

SET @aQry1 = 'SELECT ''' + @aDay + ''' AS [Today]'
--EXEC(@aQry1)

SET @aQry2 = 'SELECT ''' + @eDay + ''' AS [ExpectedDate]'
--EXEC(@aQry2)

SET @aQry3 = @aQry1 + ' UNION ALL ' + @aQry2
EXEC(@aQry3)


GROUP BY clause is reserved for aggregate functions in the SELECT queries to provide information about each group instead of individual rows. More about this clause you'll find at msdn site[^].
 
Share this answer
 
Comments
dineshvishe 30-Apr-12 1:20am    
select DATEADD(DD, -2, GETDATE()),112) from can what mean this query ????
dineshvishe 30-Apr-12 1:22am    
select SELECT convert(nchar(50),date_value,103) as date_value1 from emp

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900