Sql 插入时的用例条件
下面是一些SQL,它在内部和SP(SQL Server 2000)中运行良好 我想在“dateadd(mm,1,S.Date)”这一部分周围加上一个条件,以便能够做到:Sql 插入时的用例条件,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,下面是一些SQL,它在内部和SP(SQL Server 2000)中运行良好 我想在“dateadd(mm,1,S.Date)”这一部分周围加上一个条件,以便能够做到: Insert into #sysAccrual Select 'R', Cast(S.ServicePurchaseLineID as varchar), - S.Amount, case when dateDiff(d, S.Date , LCS.statusDateTo) > 31 TH
Insert into #sysAccrual
Select 'R', Cast(S.ServicePurchaseLineID as varchar), - S.Amount,
case when
dateDiff(d, S.Date , LCS.statusDateTo) > 31 THEN
dateadd(mm, 1, S.Date),
ELSE
S.Date,
END
null, L.LicenceTypeID, null,
L.LicenceID, L.LicenceNumber
from sysMYOB_SP S inner join Licence L ON S.LicenceID = L.LicenceID
inner join licCurrentStatus LCS ON L.LicenceID = LCS.LicenceID
and S.PaymentReasonID = 2
and S.Accrued = 0
and S.Deducted = 1
and datediff(yy, S.Date, @AccrualMonth) = 0
and datediff(mm, S.Date, @AccrualMonth) = 0
@我的问题是,我能做第二个问题的这一部分吗
case when
dateDiff(d, S.Date , LCS.statusDateTo) > 31 THEN
dateadd(mm, 1, S.Date),
ELSE
S.Date,
END
我不确定案例是否可以像我所做的那样在插入中使用。您的案例陈述的逗号不正确 而不是
case when
dateDiff(d, S.Date , LCS.statusDateTo) > 31 THEN
dateadd(mm, 1, S.Date),
ELSE
S.Date,
END
你应该
case when
dateDiff(d, S.Date , LCS.statusDateTo) > 31 THEN
dateadd(mm, 1, S.Date)
ELSE
S.Date
END,
你的问题是什么?你忘了在
END
后面加一个逗号,如果这是你的实际代码,请在中删除逗号,然后在`dateadd(mm,1,s.Date)`和s.Date
之后删除逗号,谢谢。所以在移动广告之后,我应该能够在这样的插入中使用一个盒子?
case when
dateDiff(d, S.Date , LCS.statusDateTo) > 31 THEN
dateadd(mm, 1, S.Date)
ELSE
S.Date
END,