Foxtable(狐表)用户栏目专家坐堂 → 求教,这样的SQL语句如何实现?


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

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

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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
求教,这样的SQL语句如何实现?  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By: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.提醒日期

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


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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2011/5/11 13:42:00 [显示全部帖子]

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


多谢指导!!


 回到顶部