首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个查询有关问题,立即解决,立即给分

2013-01-05 
一个查询问题,立即解决,立即给分PRODPRODQTYOPRQTYDATEA01100A52012-01-01A01100B252012-01-02A01100C3520

一个查询问题,立即解决,立即给分
PROD  PRODQTY   OPR    QTY   DATE
A01100A5    2012-01-01
A01100B25   2012-01-02
A01100C35   2012-01-03
A01100D15   2012-01-04
A01100E15   2012-01-05
A01100f10   2012-01-06
A01100g12   2012-01-07


按DATE升序排列,汇总QTY,当汇总数大于或等于前面的PRODQTY(100)的话
那么就取出来那一条记录(按DATE升序,只取符合条件日期最早的那一条记录)

如:
PROD  PRODQTY   OPR    QTY   DATE
A01100f10   2012-01-06
[解决办法]



with t as 
(
select 'A01' as prod,100 as prodqty,'A' opr, 5 qty,'2012/1/1' [date] union all
select 'A01' as prod,100 as prodqty,'B' opr, 25 qty,'2012/2/1' [date] union all
select 'A01' as prod,100 as prodqty,'C' opr, 35 qty,'2012/3/1' [date] union all
select 'A01' as prod,100 as prodqty,'D' opr, 15 qty,'2012/4/1' [date] union all
select 'A01' as prod,100 as prodqty,'E' opr, 15 qty,'2012/5/1' [date] union all
select 'A01' as prod,100 as prodqty,'F' opr, 10 qty,'2012/6/1' [date] union all
select 'A01' as prod,100 as prodqty,'G' opr, 12 qty,'2012/7/1' [date] 
)

select top 1 b.*
from t as b
where (select sum(qty) from t as a where a.date<=b.date)>prodqty
order by [date]


热点排行
Bad Request.