以文本方式查看主题

-  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=90954)

--  作者:李睿涵
--  发布时间:2016/9/26 11:12:00
--  帮我看下这句sql代码咋回事
有个“物资表”,里面有编号、名称列
有个”出入库“表,里面有物资编号,数量
其中物资表的编号就对应出入库表的物资编号
想统计各物资的库存情况
写了以下sql语句:
Sele ct 物资表.编号,物资表.名称,sum(出入库.数量) As 总数量  From {物资表}  left  JOIN  {出入库}  on 物资表.编号 = 出入库.物资编号 Order By 出入库.物料编号

但是报错,如下图

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

请问改怎么改代码?

--  作者:有点蓝
--  发布时间:2016/9/26 11:32:00
--  
Sele ct 物资表.编号,物资表.名称,sum(出入库.数量) As 总数量  From {物资表}  left  JOIN  {出入库}  on 物资表.编号 = 出入库.物资编号 group by 物资表.编号,物资表.名称 Order By 出入库.物料编号

http://www.foxtable.com/webhelp/scr/0688.htm

--  作者:李睿涵
--  发布时间:2016/9/26 11:52:00
--  

语句有效,谢谢!

 

补充提问:

出入库表里有个字段:类别,用来标记是出库还是入库

麻烦老师帮我完善一下语句,能根据类别是出库(-)还是入库(+) 来统计实时库存数


--  作者:有点蓝
--  发布时间:2016/9/26 14:07:00
--  
Sele ct 物资表.编号,物资表.名称,sum(出入库.数量) As 总数量  From {物资表}  left  JOIN  {出入库}  on 物资表.编号 = 出入库.物资编号  where 类别=‘出库 group by 物资表.编号,物资表.名称 Order By 出入库.物料编号
--  作者:李睿涵
--  发布时间:2016/9/26 14:27:00
--  

老师,我意思是,在出入库表里,我根据类别来区分是出库还是入库,出入库我填的值都是正数

希望sql语句能根据类别来累加入库数 和累减出库数,形成动态的库存表

望老师再次出手相助!


--  作者:有点蓝
--  发布时间:2016/9/26 15:03:00
--  
按下面分别创建2个视图

Sele ct 物资编号,sum(数量) As 出库数量  From {出入库}   where 类别=‘出库’ group by 编号 

Sele ct 物资编号,sum(数量) As 入库数量  From {出入库}   where 类别=‘入库’ group by 编号 

获取库存状态
sele ct 物资表.编号,物资表.名称,出库数量,入库数量  From {物资表}  left  JOIN  {出库视图}  on 物资表.编号 = 出库视图.物资编号  left  JOIN  {入库视图}  on 物资表.编号 = 入库视图.物资编号 Order By 物资表.编号

--  作者:李睿涵
--  发布时间:2016/9/26 15:22:00
--  
请问怎么建立视图?是狐表菜单的建立SQL表吗? 我是access数据源
--  作者:有点蓝
--  发布时间:2016/9/26 15:33:00
--  
access叫查询,不是视图,参考https://www.baidu.com/baidu?word=Access+%E5%88%9B%E5%BB%BA%E6%9F%A5%E8%AF%A2&ie=utf-8&tn=myie2dg&ch=6

获取库存状态改成
sele ct 物资表.编号,物资表.名称,出库数量,入库数量  From ({物资表}  left  JOIN  {出库视图}  on 物资表.编号 = 出库视图.物资编号)  left  JOIN  {入库视图}  on 物资表.编号 = 入库视图.物资编号 Order By 物资表.编号

--  作者:李睿涵
--  发布时间:2016/9/26 19:16:00
--  

老师,有不用视图,一句sql代码解决问题的方法吗?


--  作者:有点蓝
--  发布时间:2016/9/26 20:14:00
--  
sele ct 物资表.编号,物资表.名称,a.出库数量,b.入库数量  From ({物资表}  left  JOIN  (Sele ct 物资编号,sum(数量) As 出库数量  From {出入库}   where 类别=‘出库’ group by 编号) as a on 物资表.编号 = a.物资编号)  left  JOIN  (Sele ct 物资编号,sum(数量) As 入库数量  From {出入库}   where 类别=‘入库’ group by 编号) as b  on 物资表.编号 = b.物资编号 Order By 物资表.编号

试图使用方便,效率高。何况创建视图没有那么难吧