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

求 最大日期 对应 的单价解决思路

2014-01-05 
求 最大日期 对应 的单价 SELECT 编码,单价,日期 FROM Ven_Inv_Price WHERE cInvCode305002010001以上

求 最大日期 对应 的单价
 SELECT 编码,单价,日期 FROM Ven_Inv_Price WHERE cInvCode='305002010001'
以上查询语句, 求日期最大值对应的单价,SQL如何写呢,谢谢.
[解决办法]

select top 1 *
from (SELECT 编码,单价,日期,rn=ROW_NUMBER() over(Order by 日期 desc) 
FROM Ven_Inv_Price WHERE cInvCode=@cInvCode  --@cInvCode为外部传进来的参数
)t
order by rn

[解决办法]
引用:
Quote: 引用:

select top 1 *
from (SELECT 编码,单价,日期,rn=ROW_NUMBER() over(Order by 日期 desc) 
FROM Ven_Inv_Price WHERE cInvCode=@cInvCode  --@cInvCode为外部传进来的参数
)t
order by rn

实际的例子是  SELECT 编码,单价,日期 FROM Ven_Inv_Price   没有WHERE 这个条件,但又要求查询出来的结果又必须 按照 最近的日期来显示


那是这样吗:

SELECT top 1 编码,单价,日期)
FROM Ven_Inv_Price
Order by 日期 desc
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

 SELECT 编码,单价,日期 FROM Ven_Inv_Price WHERE cInvCode='305002010001'
以上查询语句, 求日期最大值对应的单价,SQL如何写呢,谢谢.


 SELECT 编码,单价,max(日期) as rq FROM Ven_Inv_Price WHERE cInvCode='305002010001'
group by 编码,单价


这个明显不好, 因为单价不同,会出来多个记录,实际上我只能允许单个记录


select a.编码,a.单价, a.日期 from Ven_Inv_Price a ,

(SELECT 编码,max(日期) as rq FROM Ven_Inv_Price 

WHERE cInvCode='305002010001'

group by 编码) b

where a.编码=b.编码 and a.日期=b.rq


热点排行