回 帖 发 新 帖 刷新版面

主题:SQL命令求助

一库存表,存放着所有物品的编号与名称等信息一进库表存放着物品的进货记录,一出库表存放着物品的出库记录,它们之间是一对多联系,库存表的每一种物品在进库表和出库表中都分别存放有好多条进货记录和出库记录,请问如何用sql命令来求出库存表中每种物品最后的库存量呢?我用了下面的SQL,结果却提示“试图执行的查询中不包含作为合计函数一部分的特定表达式‘名称’”,不知道为什么,请大家帮看看:

SELECT k.名称,sum(j.进货量)-sum(c.出库量) AS 库存量
FROM 库存 k, 进库 j, 出库 c
WHERE k.编号=j.编号 and k.编号=c.编号
group by k.编号

回复列表 (共4个回复)

沙发

SELECT k.名称,sum(j.进货量)-sum(c.出库量) AS 库存量
FROM 库存 k, 进库 j, 出库 c
WHERE k.编号=j.编号 and k.编号=c.编号
group by k.编号/*这里用select后的名称*/

可改为
SELECT k.名称,sum(j.进货量)-sum(c.出库量) AS 库存量
FROM 库存 k, 进库 j, 出库 c
WHERE k.编号=j.编号 and k.编号=c.编号
group by k.名称

板凳

经过楼上朋友的指点,查询是可以执行了,可是结果却不对:

库存表分别有编号为01和02的记录两条,而进库表中有编号和进货量

两个字段,其中的内容分别是:01 20;01 5;02 10

出库表中有编号和出库量两个字段,其中的内容分别是:01 5;02 5

现在用上述的SQL查询出来的是结果是:01 15;02 5,01应该是20才对的啊

大家帮忙看看吧

3 楼

先将入库和出库数据进行分组,其结果各自放在一个临时表中,再进行连接操作行吗?写一条SQL语句实现很难。

4 楼

谢谢大家的指点,问题已经解决,我用的是下面的SQL语句
SELECT ff.编号, ff.进货总量-gg.出库数量 AS 库存数量
FROM [SELECT 编号,SUM(进货量) as 进货总量 from 进库 group by 编号]. AS ff, [SELECT 编号,SUM(出库量) as 出库数量 from 出库 group by 编号]. AS gg
WHERE ff.编号=gg.编号;

我来回复

您尚未登录,请登录后再回复。点此登录或注册