当前位置: 代码迷 >> Sql Server >> 为什么这段代码会插入2行,搞不懂!解决方法
  详细解决方案

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

热度:20   发布时间:2016-04-27 12:39:42.0
为什么这段代码会插入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 行受影响)

------解决方案--------------------
看看结果集和你需要查到的数据有什么不符合的,把哪条去掉。
  相关解决方案