当前位置:编程学习 > C#/ASP.NET >>

继续求一条sql语句,发现上次那条不能解决我的问题

上次那条见
http://community.csdn.net/Expert/topic/5479/5479967.xml?temp=.2593958

现在有如下的表
goods_TB(商品表)  goods_aution(商品拍卖时候的记录表),User_TB(用户表)
关联是通过gid关联的.
寻找商品有一口价的和拍卖的,只有拍卖的商品才能把拍卖记录加到goods_aution表中
goods_TB字段
gid ,uid,gtitle,....,gtype(拍卖类型),gprice(起始价格),gstarttime
goods_aution字段
gid,sellid,buyid,gprice(用户出的价格)
User_tb字段
uid,uname

现在我想检索出拍卖商品的最高价格
里面的sql语句
select g.gid,g.gtitle,g.uid,g_a.buyid,gprice=(case when buyid is null then g.gprice else Max(g_a.gprice) end) from goods_TB g left join goods_aution g_a on g.gid=g_a.gid group by g.gid,g.gtitle,g.uid,g_a.buyid
上面的语句当取出的只是同一个用户的最高出价,(如果不把buyid放在group by语句里则可以取出所以用户的最高出价,但现在是还要求取出最高出价的用户名)
现在要取出最高出价的用户名和价格,发现这条语句是行不同的。
请赐教。 --------------------编程问答-------------------- 现在的坛子沉的真快,顶!急等
--------------------编程问答-------------------- select g.gid,g.gtitle,g.uid,g_a.buyid,g.gprice from ( select g.gid,g.gtitle,g.uid,max(gprice) as gprice from goods_TB group by g.gid,g.gtitle,g.uid) g left join goods_aution g_a on g.gid=g_a.gid 


--------------------编程问答-------------------- select top 1 u.uname,ga.gprice
from (goods_TB gt left outer join goods_aution ga on gt.gid = ga.gid)
     left outer join User_tb u on gt.uid = t.uid 
order by ga.gprice desc --------------------编程问答-------------------- select g.gid,g.gtitle,g.uid,g_a.buyid,a.uname,gprice=(case when buyid is null then g.gprice else Max(g_a.gprice) end) from goods_TB g left join goods_aution g_a on g.gid=g_a.gid left join User_TB a on a.uid=g.uid group by g.gid,g.gtitle,g.uid,a.uname
--------------------编程问答-------------------- 这次应没问题了吧. --------------------编程问答-------------------- 那个我取出的是买家的名字,楼上那个left join User_TB a on a.uid=g.uid 是取出的卖家的名字吧。改成a.uid=g_a.buyerid就又不行了。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,