高手,急這樣的sql怎樣寫 (100分)

  • 主题发起人 主题发起人 lz88
  • 开始时间 开始时间
L

lz88

Unregistered / Unconfirmed
GUEST, unregistred user!

名稱 單位 單價
001 a 5
001 a 5.5
001 a 6.5
003 a 6
003 a 8
我的要求是﹕如果名稱有重復的就不要顯示﹐面且單價是最底一項﹐例如下面
名稱 單位 單價
001 a 5
003 a 6
select 名稱﹐單位﹐min(單價) from mytalbe group by 名稱
我不想用
select 名稱﹐單位﹐min(單價) from mytable group by 名稱﹐單位
如果安后一個sql語句做﹐如果單位不一樣的話﹐作出來的最小單價是錯的﹐高手能不能
作到第一個的sql語句﹐我在vfp里是可以這樣作的﹐謝謝高手
 
》》select 名稱﹐單位﹐min(單價) from mytalbe group by 名稱
上句本来就不正确

》》select 名稱﹐單位﹐min(單價) from mytable group by 名稱﹐單位
肯定正确
 

这句就可以满足你啊
select 名稱﹐單位﹐min(單價) from mytable group by 名稱


不明白你的means

 
名称和单位不是一一对应的吗?
也就是所可能有一个名称对应多个单位的情况吗?
 
select a.名稱﹐a.單價 ﹐min(b.單位) from
(select 名稱, min(單價 ) as 單價 from
mytalbe group by 名稱) a,mytable b
where a.名稱 = b.名稱 and a.單價 = b.單價
group by a.名稱﹐a.單價
 
select 名稱﹐單位﹐min(單價) from mytable group by 名稱
這句是錯的﹐我知道﹐我想實現以上的查詢結果﹐我話在vfp里可以用﹐但是在access2000
里不能用﹐謝謝﹐
 
select a.名稱﹐b.單位, a.min(單價) from mytable a
left out join mytabel b on a.名稱 = b.名稱 and a.單價 = b.單價
group by 名稱
注:
以上的写法必须是只有一个单位有最低价。即,当两个单位有相同的价格且都是最低价,
那么可能会出错!
 
是不是应该这样写:(子查询)

select 名稱,單位﹐單價 from mytable
where 單價=(select min(單價) from mytable b
where mytable.名稱 = b.名稱)

没有验证,可能有误。
 
select distinct a.名称,a.单位,a.单价 from
(select 名称,单位,min(单价) from mytable) as a

这样应该可以解决你的问题了。请试一下。
 
后退
顶部