Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:求教,这样的SQL语句如何实现?

1楼
baoxyang 发表于:2011/5/10 15:58:00

select a.商品代号,a.商品名称,a.预警库存,b.库存量 from {商品资料} a  where a.预警库存 <= (select Sum(库存量) as 库存量 from {库存表} where 库存表.商品代号 = a.商品代号) and a.预警库存 > 0

 

我想把标记“库存量”也显示出来,请教如何写?

先谢了!!

[此贴子已经被作者于2011-5-10 15:58:45编辑过]
2楼
狐狸爸爸 发表于:2011/5/10 16:08:00
帮你顶。
3楼
lxl 发表于:2011/5/10 21:21:00

试试:

select a.商品代号,a.商品名称,a.预警库存,SUM(b.库存量) as 库存量

from {商品资料} a  join {库存量} b on a.商品代号 = b.商品代号

where a.预警库存 > 0

group by a.ID, a.商品代号,a.商品名称,a.预警库存

having  a.预警库存 <= SUM(b.库存量)

 

红色的ID可以不加。

如果商品代号没有创建唯一约束的话,最好把红色部分加上,否则查询分析器首先会对a表分组。但这个分组做的是无用功,显然每个商品自成一组的

4楼
baoxyang 发表于:2011/5/11 8:45:00
以下是引用lxl在2011-5-10 21:21:00的发言:

试试:

select a.商品代号,a.商品名称,a.预警库存,SUM(b.库存量) as 库存量

from {商品资料} a  join {库存量} b on a.商品代号 = b.商品代号

where a.预警库存 > 0

group by a.ID, a.商品代号,a.商品名称,a.预警库存

having  a.预警库存 <= SUM(b.库存量)

 

红色的ID可以不加。

如果商品代号没有创建唯一约束的话,最好把红色部分加上,否则查询分析器首先会对a表分组。但这个分组做的是无用功,显然每个商品自成一组的

不行,提示语句错误。谢谢LXL兄帮助。

终于折腾出来了,代码如下:

select a.货主代号,a.商品代号,b.商品名称,sum(a.库存量) as 库存总量,b.预警库存,b.手机提醒否,b.提醒次数,b.提醒日期 from 库存表 a join 商品资料 b on a.商品代号 = b.商品代号 and a.货主代号 = b.货主代号 where b.预警库存 > 0  and b.预警库存 <= (select sum(库存量) from {库存表} where 库存表.商品代号 = a.商品代号 and 库存表.货主代号 = a.货主代号) group by a.货主代号,a.商品代号,b.商品名称,b.预警库存,b.手机提醒否,b.提醒次数,b.提醒日期

但不知是否有不妥之处,请指教!

5楼
lxl 发表于:2011/5/11 9:30:00
能运行应该就可以
但最好是用having子句 。
因为嵌套查询依赖与查询优化器的优化, 如果数据量大,而且查询复杂的话很有可能会影响效率。(但很有可能优化之后没有效率损失)


6楼
baoxyang 发表于:2011/5/11 13:42:00
以下是引用lxl在2011-5-11 9:30:00的发言:
能运行应该就可以
但最好是用having子句 。
因为嵌套查询依赖与查询优化器的优化, 如果数据量大,而且查询复杂的话很有可能会影响效率。(但很有可能优化之后没有效率损失)


多谢指导!!

共6 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .01953 s, 2 queries.