求大神帮忙拼一跳sql语句  hql语句是最好啦;问题大概是这样  我有一个商品表 和 一个价格表  是一个一对多的关系  
 价格表的字段是
 -id;
-商品id;
-当前价格;
-上次价格;
-获取价格的当前时间;一个商品 可以获得不同时间的多个历史价格    现在我想从数据库里面去做一个查询  查到每件商品的最后一个时间的价格信息  并按照当前价格 减去 上次价格 的价格差降序排列。
求大神支招 并给出hql语句 谢谢啦  么么哒

解决方案 »

  1.   

       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  2.   


    试试这个:select p.*,
           t.*
    from 商品表 p
    left join
    (
    select * from 价格表 order by 商品id,获取价格的当前时间 desc
    )t
    on p.商品id = t.商品id
    group by p.商品id
      

  3.   

    SELECT `商品表`.`商品ID`,`商品表`.`商品名称`,`价格表`.`上次价格`,`价格表`.`当前价格`,MAX(`获取价格的当前时间`)
    FROM `商品表`
    LEFT JOIN `价格表`
    ON `商品表`.`商品ID`=`价格表`.`商品ID`
    GROUP BY `价格表`.`商品ID`
    ORDER BY `当前价格`-`上次价格` ASC