Sql server 基于日期的SQL Server if条件
我需要帮助,给出if-exists和if-not-exists条件 我想基于日期编写一个if条件,这样,如果表1中某个特定作业的当前日期目标_DT上存在任何行,则执行一些操作 否则做其他动作Sql server 基于日期的SQL Server if条件,sql-server,if-statement,Sql Server,If Statement,我需要帮助,给出if-exists和if-not-exists条件 我想基于日期编写一个if条件,这样,如果表1中某个特定作业的当前日期目标_DT上存在任何行,则执行一些操作 否则做其他动作 IF EXISTS(SELECT 1 FROM COD_BLU_OPENING_VOLUME WHERE TARGET_DT = CONVERT(DATETIME, GETDATE(), 101) AND JOBID = @OPENJOB) BEGIN IF(
IF EXISTS(SELECT 1 FROM COD_BLU_OPENING_VOLUME
WHERE TARGET_DT = CONVERT(DATETIME, GETDATE(), 101) AND JOBID = @OPENJOB)
BEGIN
IF(SELECT COUNT(1) FROM COD_BLU_INVENTORY WITH(NOLOCK)
WHERE (JOBID = @JOB AND STATUS = 'A' AND TARGETDT = CONVERT(DATETIME, @TARGETDT, 101))) = 0
BEGIN
INSERT INTO COD_BLU_INVENTORY(JOBID, TARGETDT, CARRYOVER, FRESHVOL, TOTALVOL, STATUS, UPDATEDBY, UPDATEDT, OPENINGVOL)
VALUES(@JOB, @TARGETDT, @CARRYOVERVOL, @FRESHVOL, @TOTALVOL, 'A', @EMPCODE, GETDATE(), @CARRYOVERVOL)
SELECT '1'
END
ELSE
BEGIN
SELECT'0'
END
END
ELSE IF NOT EXISTS(SELECT 1 FROM COD_BLU_OPENING_VOLUME
WHERE TARGET_DT = CONVERT(DATETIME, GETDATE(), 101)
AND TARGET_DT < CONVERT(DATETIME, GETDATE(), 101)
AND JOBID = @OPENJOB)
BEGIN
INSERT INTO COD_BLU_OPENING_VOLUME(TARGET_DT, JOBID, OPENING_COUNT, UPDATED_BY, UPDATED_DT, PRE_ASSIGNEDCOUNT)
VALUES(@OPENTARDT, @OPENJOB, @OPENCNT, @OPENEMPCODE, GETDATE(), @PREOPENCNT)
IF (SELECT COUNT(1) FROM COD_BLU_INVENTORY WITH(NOLOCK)
WHERE (JOBID = @JOB AND STATUS = 'A'
AND TARGETDT = CONVERT(DATETIME, @TARGETDT, 101))) = 0
BEGIN
INSERT INTO COD_BLU_INVENTORY(JOBID, TARGETDT, CARRYOVER, FRESHVOL, TOTALVOL, STATUS, UPDATEDBY, UPDATEDT, OPENINGVOL)
VALUES(@JOB, @TARGETDT, @CARRYOVERVOL, @FRESHVOL, @TOTALVOL, 'A', @EMPCODE, GETDATE(), @CARRYOVERVOL)
SELECT '1'
END
ELSE
BEGIN
SELECT '0'
END
END
但问题是,如果目标_DT被指定为未来日期,它将执行else条件,我希望它执行if条件,上面的代码就是我所厌倦的。如有任何帮助,我们将不胜感激。请帮忙 您希望在目标日期大于当前日期未来日期时执行IF部分。Ya jibin,另外,我想检查当前日期中是否存在任何行,并执行IF条件我已发布了答案,请检查它,如果有任何问题,请告诉我,itsems它不返回任何行当目标日期大于CURRENTDATE时,您想将数据插入COD_BLU__库存@rohini您可以共享测试数据和预期结果吗??
IF EXISTS(SELECT 1 FROM COD_BLU_OPENING_VOLUME WHERE ((TARGET_DT=CONVERT(DATETIME,GETDATE(),101) OR TARGET_DT>CONVERT(DATETIME,GETDATE(),101)) AND JOBID=@OPENJOB))
BEGIN
IF(SELECT COUNT(1) FROM COD_BLU_INVENTORY WITH(NOLOCK) WHERE (JOBID=@JOB AND STATUS='A' AND (TARGET_DT=CONVERT(DATETIME,GETDATE(),101) OR TARGET_DT>CONVERT(DATETIME,GETDATE(),101))))=0
BEGIN
INSERT INTO COD_BLU_INVENTORY(JOBID,TARGETDT,CARRYOVER,FRESHVOL,TOTALVOL,STATUS,UPDATEDBY,UPDATEDT,OPENINGVOL)
VALUES(@JOB,@TARGETDT,@CARRYOVERVOL,@FRESHVOL,@TOTALVOL,'A',@EMPCODE,GETDATE(),@CARRYOVERVOL)
SELECT '1'
END
ELSE
BEGIN
SELECT'0'
END
END
ELSE IF NOT EXISTS(SELECT 1 FROM COD_BLU_OPENING_VOLUME WHERE ((TARGET_DT=CONVERT(DATETIME,GETDATE(),101) OR TARGET_DT<CONVERT(DATETIME,GETDATE(),101)) AND JOBID=@OPENJOB))
BEGIN
INSERT INTO COD_BLU_OPENING_VOLUME(TARGET_DT,JOBID,OPENING_COUNT,UPDATED_BY,UPDATED_DT,PRE_ASSIGNEDCOUNT)
VALUES(@OPENTARDT,@OPENJOB,@OPENCNT,@OPENEMPCODE,GETDATE(),@PREOPENCNT)
IF (SELECT COUNT(1) FROM COD_BLU_INVENTORY WITH(NOLOCK) WHERE (JOBID=@JOB AND STATUS='A' AND TARGETDT = CONVERT(DATETIME,@TARGETDT,101)))=0
BEGIN
INSERT INTO COD_BLU_INVENTORY(JOBID,TARGETDT,CARRYOVER,FRESHVOL,TOTALVOL,STATUS,UPDATEDBY,UPDATEDT,OPENINGVOL)
VALUES(@JOB,@TARGETDT,@CARRYOVERVOL,@FRESHVOL,@TOTALVOL,'A',@EMPCODE,GETDATE(),@CARRYOVERVOL)
SELECT '1'
END
ELSE
BEGIN
SELECT'0'
END
END
END