有两个表:YPrk入库表,Ypck出库表,我想求所有商品的库存余额:如下代码
S3:='(select 商品编码,sum(进货数量)as 累计进货 from YpRk group by 商品大类,商品名称,商品规格,商品编码 ) t3 ';
S4:='(select z.商品编码,(sum(z.出货数量))as 累计出货 from Ypck z,Yprk z1 where (z.商品编码=z1.商品编码) group by z.商品编码 ) t4 ';
S5:='select t3.*,t4.累计出货 from '+s3+' left join '+s4+ ' on (t3.商品规格=t4.商品规格) ';出现的问题是,累计出货的值比正常值大2倍
S3:='(select 商品编码,sum(进货数量)as 累计进货 from YpRk group by 商品大类,商品名称,商品规格,商品编码 ) t3 ';
S4:='(select z.商品编码,(sum(z.出货数量))as 累计出货 from Ypck z,Yprk z1 where (z.商品编码=z1.商品编码) group by z.商品编码 ) t4 ';
S5:='select t3.*,t4.累计出货 from '+s3+' left join '+s4+ ' on (t3.商品规格=t4.商品规格) ';出现的问题是,累计出货的值比正常值大2倍
解决方案 »
- 类对象的频繁创建与释放会怎么样?
- delphi简单的问题
- 请问 SAP 是什么软件 ? 适合什么行业?? 多少钱一套??
- 中国人自己的数据库全球26000元重奖征名
- 请教有关中文字符的字符串处理
- 帮帮我--------------表的显示问题
- 请问各位高手,如何创建密码列表?谁能给我这方面详细的资料或者指导?万分感谢!!
- 救菜鸟于水火第二问之动动小手
- 请问!! int如何转换成byte?--------谢谢lastlove 0的帮助!!!!!!
- 我的瑞星已是:13.34,为什么Nimda.win32还是骚扰我?thanks.
- 怀念LY
- 用TADoStoreProc调用SqlServer的存储过程的问题
商品规格在入库表中有重复Left Join 后重复几次就乘几倍
为什么不用“商品编码”?
S3:='(select 商品编码,sum(进货数量)as 累计进货,Sum(合计)as 累计进货金额 from YpRk group by 商品编码 ) t3 ';
S4:='(select z.商品编码,(sum(z.出货数量))as 累计出货,(sum(z.合计))as 累计销售金额,sum((z.销售单价-z1.进货单价)*(z.出货数量))as 累计利润 from Ypck z,Yprk z1 where (z.商品编码=z1.商品编码) group by z.商品编码 ) t4 ';
S5:='select t3.*,t4.累计出货,t4.累计销售金额,t4.累计利润 from '+s3+' left join '+s4+
' on (t3.商品编码=t4.商品编码)';
S3:='(select 商品编码,sum(进货数量)as 累计进货,Sum(合计)as 累计进货金额 from YpRk group by 商品编码 ) t3 ';
S4:='(select z.商品编码,sum(z.出货数量)as 累计出货,sum(z.合计)as 累计销售金额,sum((z.销售单价-z1.进货单价)*(z.出货数量))as 累计利润 from Ypck z,Yprk z1 where z.商品编码=z1.商品编码 group by z.商品编码 ) t4 ';
S5:='select t3.*,t4.累计出货,t4.累计销售金额,t4.累计利润 from '+s3+' left join '+s4+
' on (t3.商品编码=t4.商品编码)';
可以先试试 Select 商品编码 From T3 和 Select Distinct 商品编码 From T3 看看条数是否一样
还有T4也检查一下如果不一样肯定是有重复按你那个语句写出来统计结果肯定要翻倍的
呵呵!
我调试的是语句S4里,如果加上Where z.商品编码=z1.商品编码 就是变成2倍