现有数据库表A,其中有三列:库存年月,物料编码,物料单价目前有12个月的数据记录,每个月都有相同的物料编码,每个月的单价也可能不一样,现在需要取出:物料编码,物料单价两列
条件:
1、同一个品号只取一个,但要满足下面两个条件。
2、物料单价列<>0;
3、库存年月取最大;
连成一句话:“库存年月”最大,且“物料单价”<>0的记录(数据表保证同一年月,品号不相同)。不知道这样的查询能否实现?
条件:
1、同一个品号只取一个,但要满足下面两个条件。
2、物料单价列<>0;
3、库存年月取最大;
连成一句话:“库存年月”最大,且“物料单价”<>0的记录(数据表保证同一年月,品号不相同)。不知道这样的查询能否实现?
select * from (
select rid=row_number() over (partition by 物料编码 order by 库存年月 desc),*
from tb
where 物料单价<>0
) t
where rid=1
not exists(select 1 from tb where 物料编码=a.物料编码 and 物料单价>0 and 库存年月>a.库存年月)
select
*
from
tb t
where
物料单价<>0
and
库存年月=(select max(库存年月) from tb where 物料编码=a.物料编码 and 物料单价<>0 )