SQL语句:求各个商品最后一次进货的单价

表一字段
[表单号] [日期] [时间]
表二
[表单号] [商品编码] [商品名称] [进货单价]

表一和表二用表单号关联

求各个商品最后一次进货单价

create view v1
as
select 商品编码,max(时间) 最后进货时间

from 表一 a join 表二 b on a.表单号=b.表单号

group by 商品编码

select 商品名称,进货单价
from 表一 a join 表二 b on a.表单号=b.表单号 join v1 c on b.商品编码=c.商品编码 and c.时间=b.最后进货时间
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-31
Select a.商品编码,a.进货单价 from table2 as a,

(Select max(日期) 日期 ,表单号, 商品编码 from table1 as a left join table2 as b on a.表单号=b.表单号 group by 表单号,商品编码 ) as b where a.表单号=b.表单号 and a.商品编码 =b.商品编码
第2个回答  2017-08-07

楼主好,可以使用row_number进行获取,SQL如下:

select * from (
select a.表单号,a.日期,a.时间,b.商品编码,b.商品名称,b.进货单价,row_number()over(partition by 表单号,order by a.日期 desc,a.时间 desc) cn from table1 a
join table2 b on a.表单号=b.表单号
) a where a.cn=1

第3个回答  2014-10-31
select top 1 进货单价 from 表一 inner join 表二 on 表一.表单号=表二.表单号

order by 日期 desc

额.大致就这样吧.. 关键在于 按日期时间 倒序排序
第4个回答  2014-10-31
时间倒叙下不行么,,
相似回答