table : prices (priceid, item, date, value, user)
要求:找到某个user的所有价格,按item归类,并且找到最大的date的记录行。也就是说,每个用户有很多个价格记录,相同或不同的日期,相同或不同的商品,要找到某个用户的每个商品的最近时间的一条价格记录。
我用select *, max(date) from prices where user=x group by item,结果是max(date)是group的最大值,但价格记录不是max(date)那条记录。也就是说返回的记录里正确的按商品分组了,而且得到了该商品的最后价格日期,但是对应的价格记录却不是组后价格日期对应的那条记录,而是该商品的组里面的第一条记录。
举例:
user "大宝"买了“书包”4次:1日花了5.0元,5日花了5.2元,10日花了5.1元,15日花了5.5元。
还买了“香烟”N次。。。。
我要找到大宝最后一次买书包和香烟的价格。上面我的sql查询返回的对应“书包” 的是1日的详细记录和“15日”作为该组的最后日期
求正确的查询语句。
求教一个MYSQL查询
-
- 帖子: 1010
- 注册时间: 2006-09-29 5:11
求教一个MYSQL查询
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
-
- 帖子: 12
- 注册时间: 2008-02-12 14:20
Re: 求教一个MYSQL查询
在mssql下测试过
select a.* from prices a ,
(select [user],item,max(date) as date from prices group by [user],item) b
where a.[user]=b.[user] and a.item = b.item and a.date=b.date
select a.* from prices a ,
(select [user],item,max(date) as date from prices group by [user],item) b
where a.[user]=b.[user] and a.item = b.item and a.date=b.date
-
- 帖子: 1010
- 注册时间: 2006-09-29 5:11
Re: 求教一个MYSQL查询
楼上的好像不对啊。
我现在暂时用的方法是用一个临时查询表格先把原表按“时间”倒序排序,然后再用我那个查询语句,出来的就是我要的结果了。
我现在暂时用的方法是用一个临时查询表格先把原表按“时间”倒序排序,然后再用我那个查询语句,出来的就是我要的结果了。
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS
- karron
- 帖子: 6226
- 注册时间: 2005-06-11 14:03
- 来自: 不明真相的群众
- 联系: