查询最新日期价钱

查询最新日期价格
id   供应商              物料        日期
1       a                        aa           5-5
2       a                        aa           5-4
3       b                        bb           5-3
4       b                        bb           5-5
5       b                        aa           5-6
查询需求:日期最大的供应商和物料
查询结果:
1       a                        aa           5-5
4       b                        bb           5-5
5       b                        aa           5-6
我做有难度,谢谢高手  请帮帮忙。
------解决方案--------------------
if object_id('[TBB]') is not null drop table [TBB]
create table [TBB] (id int,供应商 varchar(1),物料 varchar(2),日期 varchar(3))
insert into [TBB]
select 1,'a','aa','5-5' union all
select 2,'a','aa','5-4' union all
select 3,'b','bb','5-3' union all
select 4,'b','bb','5-5' union all
select 5,'b','aa','5-6'



SELECT  A.*
FROM    TBB A
WHERE   NOT EXISTS ( SELECT 1
                     FROM   TBB B
                     WHERE  A.供应商 = B.供应商
                            AND A.物料 = B.物料
                            AND A.日期 < B.日期 )

/*
id 供应商 物料 日期
1 a aa 5-5
4 b bb 5-5
5 b aa 5-6*/


------解决方案--------------------

WITH a1 (id,供应商,物料,日期) AS
(
select 1,'a','aa','5-5' union all
select 2,'a','aa','5-4' union all
select 3,'b','bb','5-3' union all
select 4,'b','bb','5-5' union all
select 5,'b','aa','5-6'
)
SELECT *
FROM a1 a
WHERE id=(SELECT TOP 1 id FROM a1 WHERE 供应商=a.供应商 AND 物料=a.物料 ORDER BY 日期 DESC)