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倍呢,哪个大侠帮帮忙 展开
 我来答
丸子哥988
2014-06-23 · 超过61用户采纳过TA的回答
知道答主
回答量:133
采纳率:0%
帮助的人:71万
展开全部
union 了几次? 这些出现10倍是因为笛卡尔积的缘故
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式