declare @询价单 table
(
序号 int identity(1,1),
询价单号 varchar(10),
货物名称 varchar(10),
海运费  int
)insert @询价单 select 'XJ001','饼干',10
union all  select 'XJ001','饼干',11
union all  select 'XJ001','饼干',9
union all  select 'XJ002','果冻',20
union all  select 'XJ002','果冻',18
union all  select 'XJ003','饼干',10select
a.*
from @询价单 a
where not exists(
select *
from @询价单
where 询价单号 = a.询价单号
and 货物名称 = a.货物名称
and 海运费 > a.海运费
)/**
2 XJ001 饼干 11
4 XJ002 果冻 20
6 XJ003 饼干 10
**/

解决方案 »

  1.   


    declare @询价单 table
    (
        序号 int identity(1,1),
        询价单号 varchar(10),
        货物名称 varchar(10),
        海运费  int
    )insert @询价单 select 'XJ001','饼干',10
    union all  select 'XJ001','饼干',11
    union all  select 'XJ001','饼干',9
    union all  select 'XJ002','果冻',20
    union all  select 'XJ002','果冻',18
    union all  select 'XJ003','饼干',10select a.*
    from @询价单 a
    inner join
    (select 询价单号, 货物名称, max(海运费) as 海运费
    from @询价单
    group by 询价单号, 货物名称) b
    on a.询价单号 = b.询价单号 and a.货物名称 = b.货物名称 and a.海运费 = b.海运费
    order by 序号go
      

  2.   

    多谢各位前辈的指教!
    发现一个菜鸟级的问题,
    用像MAX这样的函数,所有的字段都放在GROUP里面。