以文本方式查看主题 - 搭建论坛 (http://bbs.diylsoft.com:8118/starforum/index.asp) -- 数据库交流 (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=6) ---- SQL命令请教~~ (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=6&id=4153) |
-- 作者:天上云地下海 -- 发布时间:2005-8-26 21:25:11 -- SQL命令请教~~ 在一库存表中有几千种药品和原始进货量,在销售表中记录着药品的销售记录 在星中如何写SQL命令以求得出每种药品的销售量和销售之后的库存量(进货量-销售量)? |
-- 作者:水手 -- 发布时间:2005-8-26 22:48:18 -- 最好再加一个药品信息表。试试下面的SQL: select y.药品代码, y.药品名称, sum(k.进货数量) - sum(x.销售数量) as 当前库存 from 药品信息表 y,库存表 k,销售表 x where y.药品代码=k.药品代码 and y.药品代码=x.药品代码 group by y.药品代码, y.药品名称 order by y.药品代码, y.药品名称 |
-- 作者:天上云地下海 -- 发布时间:2005-8-26 23:35:51 -- 版主,能解释一下其中的语义吗?另外,您说要建立一个药品信息表,这个表是由手工建立的,还是由SQL生成的临时表,其中要建立些什么字段呢?先谢谢了 |
-- 作者:水手 -- 发布时间:2005-8-27 16:08:29 -- 因为你要查看药品库存,所以你必须有一个包含所有药品的信息表,有了这个表,你在销售以及进货等等操作中直接选择药品就可以了,而且要查看库存,最好也要有这张表,否则假如某个药品目前库存为0,但是本期发生了进货与销售,这样如果没有一个完整的药品表的话,可能造成数据查询不完整。 |
-- 作者:天上云地下海 -- 发布时间:2005-8-27 20:15:32 -- 谢谢版主,能解释一下上述语句的意思吗? |
-- 作者:水手 -- 发布时间:2005-8-27 21:40:35 -- 就是从不同的表中取数,FROM语句是把相关表简化为一个字母,便于书写,就是SELECT语句中每一个字段前所加的字母,你也可以直接写数据表的名称。详细的介绍请看一些相关的SQL书籍做参考。 |
-- 作者:天上云地下海 -- 发布时间:2005-8-29 23:44:11 -- 版主,我试着运行了上述的SQL命令,结果却提示“试图执行的查询中不包含作为合计函数一部分的特定表达式‘代码’”。这是什么回事啊,如何解决呢 |
-- 作者:水手 -- 发布时间:2005-8-30 0:50:13 -- 你在SELECT语句中使用了"代码"字段但是在GROUP BY语句中没有包含该字段。在SQL语言中,如果SELECT语句中既有单个字段(如“代码”),又有汇总字段(如sum(x.销售数量)),那么在GROUP BY语句中必须包含所有的单个字段。否则就会出现你所说的错误提示。 请参考相关SQL语言帮助的聚集函数与非聚集函数相关内容。 |
-- 作者:天上云地下海 -- 发布时间:2005-8-30 0:59:58 -- 谢谢版主,查询是可以执行了,可是结果却不对: 库存表分别有编号为01和02的记录两条,而进库表中有编号和进货量 两个字段,其中的内容分别是:01 20;01 5;02 10 出库表中有编号和出库量两个字段,其中的内容分别是:01 5;02 5 现在用上述的SQL查询出来的是结果是:01 15;02 5,01应该是20才对的啊 为什么会这样呢? |
-- 作者:水手 -- 发布时间:2005-8-30 10:54:11 -- 把你的项目传上来看看吧. |