读书人

为什么这段代码会插入2行搞不懂!解决

发布时间: 2012-05-28 17:59:33 作者: rapoo

为什么这段代码会插入2行,搞不懂!
INSERT INTO InterestReceive(ContractNm,PeriodRepyDate,RepayType,RepayAmount,receivableAmount)
SELECT a.ContractNm,getdate(),'PeriodOverdueCharge' RepayType,CASE WHEN a.RepayAmount*b.OverdueRate/365*Datediff(day,PeriodRepyDate,getdate())<150 THEN 150 ELSE a.RepayAmount*b.OverdueRate/365*Datediff(day,PeriodRepyDate,getdate()) END RepayAmount,NULL FROM
(
SELECT ContractNm,SUM(ISNULL(receivableAmount,0))receivableAmount,SUM(ISNULL(RepayAmount,0))RepayAmount,PeriodRepyDate FROM InterestReceive WHERE DATEDIFF(day,PeriodRepyDate,GETDATE())>5
AND RepayType IN ('PeriodCapital','PeriodInterst','PeriodMangeCharge') GROUP BY ContractNm,PeriodRepyDate
) AS a
LEFT JOIN OPSInf b ON b.LoanNm=a.ContractNm
WHERE a.receivableAmount=0


(2 行受影响)

[解决办法]
看看结果集和你需要查到的数据有什么不符合的,把哪条去掉。

读书人网 >SQL Server

热点推荐