标题:记录一个Select 语句取唯一值方法
取消只看楼主
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
结帖率:100%
 问题点数:0 回复次数:1 
记录一个Select 语句取唯一值方法
在某个项目中遇到的问题,记录在此,希望需要的人能用到.
有某个价格波动表如下:
CREATE CURSOR  aa (dm c(3) ,rq d , jg y)
INSERT INTO aa VALUES ('a1' ,{^2018.11.02} ,1.103)
INSERT INTO aa VALUES ('a2' ,{^2018.11.04} ,1.104)
INSERT INTO aa VALUES ('a2' ,{^2018.11.01} ,1.114)
INSERT INTO aa VALUES ('a3' ,{^2018.11.09} ,1.214)
INSERT INTO aa VALUES ('a3' ,{^2018.11.10} ,1.219)
INSERT INTO aa VALUES ('a3' ,{^2018.11.05} ,1.101)
INSERT INTO aa VALUES ('a3' ,{^2018.11.10} ,1.215)

希望用一句Select语句,取出数据,结果如下:

规则:
每个物料,取唯一值,
如果有多个日期,取最大日期带出的价格.
如果某个物料在同一时间有多个值,取出最小值.

至于为什么强制要用一句Select语句,是因为这个本身是在一个MySql环境中运行的,
不能像VFP那样,写一个过程来解决.
搜索更多相关主题的帖子: 语句 INSERT VALUES Select INTO 
2019-10-22 09:02
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
经过摸索,得出语句如下,希望能帮到有类似困扰的人:
SELECT cc.dm ,cc.rq,MIN(cc.jg) as jg   FROM ( ;
    SELECT aa.* FROM aa ,(SELECT aa.dm ,MAX(aa.rq) as rq  ;
                FROM aa  GROUP BY dm) as bb ;
     WHERE aa.dm = bb.dm AND aa.rq = bb.rq ) as cc ;
GROUP BY cc.dm,cc.rq ;
into cursor result
2019-10-22 09:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497378-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.386616 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved