以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于统计库存的sql代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=104341)

--  作者:yjf123
--  发布时间:2017/7/27 15:53:00
--  关于统计库存的sql代码

关于统计库存的sql代码,会出现重复数据,怎么处理?

S.elect  c.品号,c.品名,c.规格,c.成份,c.成品克重,c.成品门幅,b.入库数,b.出库数,b.库存数,c.入库单位 as 单位 from {YW_样品入库单明细} As c right JOIN(S.elect  a.品号,sum(入库数) as 入库数 ,sum(出库数) as 出库数,(isnull(sum(入库数),0)-isnull(sum(出库数),0)) as 库存数 from( S.elect  {YW_样品入库单明细}.品号,入库数,出库数 From {YW_样品入库单明细} Left JOIN {YW_样品出库单明细} ON {YW_样品出库单明细}.[品号] = {YW_样品入库单明细}.[品号]) as a group by 品号) As b ON c.[品号] =b.[品号]

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170727155321.jpg
图片点击可在新窗口打开查看

--  作者:yjf123
--  发布时间:2017/7/27 16:51:00
--  

--  作者:有点甜
--  发布时间:2017/7/27 17:19:00
--  

你思路有问题。你应该把出库表和入库表union all之后,再分组的。

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=104253&skin=0

 


--  作者:yjf123
--  发布时间:2017/7/28 15:48:00
--  

s.elect b.品号,c.品名 from {YW_样品入库单明细} As c right join (S.elect a.品号,sum(入库数) As 入库数,sum(出库数) As 出库数  from (S.elect 品号,入库数,0 As 出库数 from {YW_样品入库单明细} UNION ALL S.elect 品号,0,出库数 from {YW_样品出库单明细}) as a group by 品号) as b on b.品号=c.品号

 

这样写也还有重复的呀



--  作者:有点甜
--  发布时间:2017/7/28 17:30:00
--  

最后你用 join 肯定会重复啊。只要你左表或右表重复,都会重复。

 

我是叫你最后直接分组。不会写上传实例。


--  作者:yjf123
--  发布时间:2017/7/29 9:38:00
--  
如果最后分组,但怎么加上其它字段呀,不是一样要join吗
[此贴子已经被作者于2017/7/29 9:38:17编辑过]

--  作者:有点蓝
--  发布时间:2017/7/29 10:23:00
--  
换下位置,用left join

(S.elect  a.品号,sum(入库数) as 入库数 ,sum(出库数) as 出库数,(isnull(sum(入库数),0)-isnull(sum(出库数),0)) as 库存数 from( S.elect  {YW_样品入库单明细}.品号,入库数,出库数 From {YW_样品入库单明细} Left JOIN {YW_样品出库单明细} ON {YW_样品出库单明细}.[品号] = {YW_样品入库单明细}.[品号]) as a group by 品号) As b  left JOIN S.elect  c.品号,c.品名,c.规格,c.成份,c.成品克重,c.成品门幅,b.入库数,b.出库数,b.库存数,c.入库单位 as 单位 from {YW_样品入库单明细} As c ON c.[品号] =b.[品号] 

--  作者:yjf123
--  发布时间:2017/7/29 13:13:00
--  

本来就是left不对才换right的,这个语句有问题

上传例子了

例子

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:sql测试.foxdb

[此贴子已经被作者于2017/7/29 13:59:46编辑过]

--  作者:有点蓝
--  发布时间:2017/7/29 15:11:00
--  
select 品号,品名,规格,成份,成品克重,成品门幅,sum(入库数) as 入库数,sum(出库数)  As 出库数 from (Select 品号,入库数,0 As 出库数,品名,规格,成份,成品克重,成品门幅 from YW_样品入库单明细 union all Select 品号,0 As 入库数,出库数,品名,规格,成份,成品克重,成品门幅 from YW_样品出库单明细) as a group by 品号,品名,规格,成份,成品克重,成品门幅