请问这样的SQL怎样写?(50分)

  • 主题发起人 主题发起人 zyycc
  • 开始时间 开始时间
Z

zyycc

Unregistered / Unconfirmed
GUEST, unregistred user!
有这样一个表
recno 货品号 柜台号 销售员号 日期 卖价
1 001 0A S02 01/01 5
3 001 0B S01 01/01 4
4 001 0A S03 01/02 3
5 002 0C S01 01/01 5
7 002 0B S02 01/05 7
8 003 0D S03 01/02 9
9 003 0C S02 01/04 6

我希望的结果为:
recno 货品号 柜台号 销售员号 日期 卖价
1 001 0A S02 01/01 5
7 002 0B S02 01/05 7
8 003 0D S03 01/02 9

即要找出每种货品卖价最高的那条记录,各位大虾,请问如何写?谢谢啦!
(俺用MSSQL7.0)
 
映象中没有能直接完成你所要求的SQL语句
一个直接但愚蠢的方法是建立一个新表,将每种货品的所有记录都放入新表中查询
 
刚刚在自己的机器上试了一下,比较好写,如下
select recno ,货品号,柜台号,销售员号,日期,max(卖价) from 表 group by 货品号
你可以试一下,应该就是你想要的结果
 
不太好写。我再试试。建议写成存储过程,在后台执行.
 
mat的写法不对,怎么可以这样group by呢!!??
问题不大清楚,如果同一种货品卖价一样高呢??
 
zyycc:
如果同一种货品卖价一样高,你希望怎么显示?
 
To: delphiwolf,philipliu
如果同一种货品卖价一样高,只要任选一条即可,可以作到吗?
 
俺都等不及了,俺要赏分了,这问题共花了150分啊,俺总分也就俩百来分哪!
 
Table name is Test1

select Test1.*
from (select max(recno) recno
from (SELECT 货品号, MAX(卖价) AS 卖价
FROM Test1
GROUP BY 货品号) Test2, Test1
where Test1.货品号 = Test2.货品号 and
Test1.卖价 = Test2.卖价
group by Test1.货品号) Test2, Test1
where Test1.recno = Test2.recno
 
接受答案了.
 
后退
顶部