产品名称 数量 日期
A 100 2018-3-1
A 250 2018-3-2
A 200 2018-3-3
B 100 2018-3-1
B 100 2018-3-2
B 200 2018-3-3
B 100 2018-3-4
需求是这样的 按照产品名称 时间排号顺序
去每种商品数量总数达到300的记录 刚好超过300的那条记录保留
筛选结果
产品名称 数量 日期
A 100 2018-3-1
A 250 2018-3-2
B 100 2018-3-1
B 100 2018-3-2
B 200 2018-3-3
请教一下该如何用sql实现呢
select c,id,s from (select c,id,(select sum(d) from testTable2 where id<=a.id and c=a.c) s from testTable2 a) b where b.s<=8
名称代入c,日期代入id,数量代入s,300取代8
需求是这样的 按照产品名称 时间排号顺序 ----这条好实现 最后加上order by 产品名称,时间编号 如需降序加上desc。
去每种商品数量总数达到300的记录 刚好超过300的那条记录保留 ----这条看不懂。不知道您想要的是什么。
如果是想只显示商品数量小于等于三百的,可以这么写:
select * from 表名 where 商品数量<=300 order by 产品名称,时间编号 如需降序加上desc
SELECT * from 表名 order by 产品名称, 日期;
SELECT TOP 300 * from 产品 ORDER BY 产品名称, 日期;
oracle数据库么?select * from ( select t.rownum as rm ,t.字段 from 表 t order by 名称,时间) where rm < = 300
select 产品名称,数量,日期 from 表 where 数量<=300 order by 产品名称,日期