22,209
社区成员
发帖
与我相关
我的任务
分享
SELECT M.KPIID FROM TB_KPIS AS M
WHERE M.KPIID IN
(
SELECT A.KPIID FROM TB_KPIS AS A WHERE A.KPIFrequencyType=4--按天
UNION
SELECT B.KPIID FROM TB_KPIS AS B WHERE B.KPIFrequencyType=1 AND datediff(day,Convert(datetime,B.KPIFrequencyValue),getdate())=0--按年
UNION
SELECT C.KPIID FROM TB_KPIS AS C WHERE C.KPIFrequencyType=2 AND Convert(INT,C.KPIFrequencyValue)=day(getdate())--按月
UNION
SELECT D.KPIID FROM TB_KPIS AS D WHERE D.KPIFrequencyType=3 AND charindex(convert(varchar(10),datepart(weekday,getdate())),D.KPIFrequencyValue)!=0
)
SELECT A.KPIID FROM TB_KPIS AS A WHERE A.KPIFrequencyType=4--按天
UNION
SELECT B.KPIID FROM TB_KPIS AS B WHERE B.KPIFrequencyType=1 AND datediff(day,Convert(datetime,B.KPIFrequencyValue),getdate())=0--按年
UNION
SELECT C.KPIID FROM TB_KPIS AS C WHERE C.KPIFrequencyType=2 AND Convert(INT,C.KPIFrequencyValue)=day(getdate())--按月
UNION
SELECT D.KPIID FROM TB_KPIS AS D WHERE D.KPIFrequencyType=3 AND charindex(convert(varchar(10),datepart(weekday,getdate())),D.KPIFrequencyValue)!=0
;WITH MU AS (
SELECT A.KPIID FROM TB_KPIS AS A WHERE A.KPIFrequencyType=4--按天
UNION
SELECT B.KPIID FROM TB_KPIS AS B WHERE B.KPIFrequencyType=1 AND datediff(day,Convert(datetime,B.KPIFrequencyValue),getdate())=0--按年
UNION
SELECT C.KPIID FROM TB_KPIS AS C WHERE C.KPIFrequencyType=2 AND Convert(INT,C.KPIFrequencyValue)=day(getdate())--按月
UNION
SELECT D.KPIID FROM TB_KPIS AS D WHERE D.KPIFrequencyType=3 AND charindex(convert(varchar(10),datepart(weekday,getdate())),D.KPIFrequencyValue)!=0
)
SELECT M.KPIID FROM TB_KPIS AS M
WHERE M.KPIID IN (SELECT KPIID FROM MU)
--try
SELECT M.KPIID FROM TB_KPIS AS M
WHERE M.KPIID IN
(
SELECT A.KPIID FROM TB_KPIS AS A WHERE A.KPIFrequencyType=4--按天
UNION
SELECT B.KPIID FROM TB_KPIS AS B WHERE B.KPIFrequencyType=1 and isdate(B.KPIFrequencyValue)=1 AND datediff(day,Convert(datetime,B.KPIFrequencyValue),getdate())=0--按年
UNION
SELECT C.KPIID FROM TB_KPIS AS C WHERE C.KPIFrequencyType=2 AND Convert(INT,C.KPIFrequencyValue)=day(getdate())--按月
UNION
SELECT D.KPIID FROM TB_KPIS AS D WHERE D.KPIFrequencyType=3 AND charindex(convert(varchar(10),datepart(weekday,getdate())),D.KPIFrequencyValue)!=0
)