Foxtable(狐表)用户栏目专家坐堂 → 关于统计库存的sql代码


  共有1627人关注过本帖树形打印复制链接

主题:关于统计库存的sql代码

帅哥哟,离线,有人找我吗?
yjf123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:823 积分:6278 威望:0 精华:0 注册:2016/7/8 18:58:00
关于统计库存的sql代码  发帖心情 Post By:2017/7/27 15:53:00 [只看该作者]

关于统计库存的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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:823 积分:6278 威望:0 精华:0 注册:2016/7/8 18:58:00
  发帖心情 Post By:2017/7/27 16:51:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/27 17:19:00 [只看该作者]

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
yjf123
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:823 积分:6278 威望:0 精华:0 注册:2016/7/8 18:58:00
  发帖心情 Post By: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.品号

 

这样写也还有重复的呀



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/28 17:30:00 [只看该作者]

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
yjf123
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:823 积分:6278 威望:0 精华:0 注册:2016/7/8 18:58:00
  发帖心情 Post By:2017/7/29 9:38:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:823 积分:6278 威望:0 精华:0 注册:2016/7/8 18:58:00
  发帖心情 Post By:2017/7/29 13:13:00 [只看该作者]

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

上传例子了

例子

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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 品号,品名,规格,成份,成品克重,成品门幅



 回到顶部