
sql 里面union all外边再用一个left join 怎么查出的结果集是本来的10倍呢
selectt.V_NO,v.V_NAME,isnull(sum(h.ACCOUNT_PAYABLE),0)ACCOUNT_PAYABLE,isnull(sum(h.F_...
select t.V_NO, v.V_NAME,isnull(sum(h.ACCOUNT_PAYABLE),0) ACCOUNT_PAYABLE,isnull(sum(h.F_AMT),0) F_AMT ,isnull(sum(h.NON_PAYMENT),0) NON_PAYMENT,isnull(sum(h.FRIST_F_AMT),0) FRIST_F_AMT from ( 中间是UNION ALL 语句 ) t left join Vedor v on v.V_NO = t.V_NO left join (select distinct h.A_NO,h.V_NO,isnull(h.ACCOUNT_PAYABLE,0) ACCOUNT_PAYABLE,isnull(h.F_AMT,0) F_AMT, isnull(h.NON_PAYMENT,0) NON_PAYMENT, case when A_TYPE='1' then h.F_AMT else 0 end FRIST_F_AMT from apb_h h left join apb_d d on h.A_NO=d.A_NO where A_NUMBER='1' and FLS_NO!='ED' and d.a_date>='20091201' and d.a_date<='20100202')h on h.v_no=v.v_no group by t.V_NO, v.V_NAME,v.PM_NO order by t.V_NO 为啥查出来ACCOUNT_PAYABLE会是本来的10倍呢,哪个大侠帮帮忙
展开
1个回答
展开全部
union 了几次? 这些出现10倍是因为笛卡尔积的缘故
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询