sql查询语句问题- sum求和的值作为查询条件
2005-02-18 14:16
543 查看
在物流系统开发过程中碰到这样一个问题,项目组的人讨论了很久用了这样的解决方法,
肯定还有地方需要优化,我先把我们的思路写出来,哪位朋友比较感兴趣,帮忙优化一下。
某储位档是已经按照优先级别排序的集合,字段有[储位代码(locationcode),储位产品存放数量(pilenum),优先级(level)]
现在要从该表中按照排好的顺序取出150个产品。如何最简单实现?
创建测试资料文件某储位档(test1)
the following is our sql script:
select identity(int,1,1) as rID,* into #test from test1
select * from #test
if not exists(select * from #test a where (select sum(pilenum) from #test where rID <= a.rID) <90)
begin
select top 1 * from #test
end
else
begin
select * from #test a where (select sum(pilenum) from #test where rID <= a.rID) < 90
union (select * from #test where rID = (select max(rID) from #test a where (select sum(pilenum) from #test where rID <= a.rID) < 90)+1)
end
drop table #test
executed result:
rID | locationcode | pilenum | level |
1 | T-E03-2 | 34 | 1 |
2 | T-E03-3 | 50 | 1 |
3 | T-E03-6 | 50 | 1 |
4 | T-E03-7 | 12 | 1 |
5 | T-E03-8 | 80 | 2 |
6 | T-E04-5 | 30 | 3 |
7 | T-E04-7 | 50 | 2 |
rID | locationcode | pilenum | level |
1 | T-E03-2 | 34 | 1 |
2 | T-E03-3 | 50 | 1 |
3 | T-E03-6 | 50 | 1 |
相关文章推荐
- sql server select查询语句 我想把AS后面重命名的列名 作为where语句的条件
- mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句以及伪列作为查询条件实现
- 使用SQL查询语句时,数组动态赋值SQL IN ()作为条件条件一个
- SQL优化 查询语句中,用 inner join 作为过滤条件和用where作为过滤条件的区别
- 使用SQL查询语句时,数组动态赋值SQL IN ()作为条件条件一个
- sql 多字段求和并作为查询条件
- SQL语句--查询结果作为条件与另一张表进行条件查询
- Oracle clob类型的字段作为查询条件的sql语句写法
- SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL。但咱们想返回的是0而不是Null
- sql查询 group by 数字类型+null 为null 处理 ,sum()的结果作为条件再次查询。
- SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL。但咱们想返回的是0而不是Null
- SQL多条件查询Sql语句
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- 关于SQL中Between语句查询日期的问题
- 多条件组合查询,并根据指定类别找出所有最小子类别的SQL语句备忘
- [导入]复杂或有趣的MDX问题求解(3)-SQL查询事实表与MDX语句查询的关系示例
- SQL查询效率where语句条件
- delphi中使用sql语句加条件引用时值是一个整型变量的问题
- 要提高SQL查询效率where语句条件的先后次序应如何写使你的SQL 语句完全优化
- 时间类型数据使用between ...and ..语句条件查询时应注意的问题