| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 799 人关注过本帖
标题:求助关于SQL语句的实现
只看楼主 加入收藏
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:3 
求助关于SQL语句的实现
有发下的表,我要实现的是取每一种fitemid的最近时间的记录,如705取705 2010 2 364.9 0.68这条记录,而741则取741 2010 1 4421 10.69 这条记录,请问如何实现?
fitemid    fyear    fperiod    fbegqty          fbegbal
705    2008         6         45047.0000000000    208545.00
705    2008         7         3749.0000000000     15384.81
705    2008         8         2451.0000000000     3.03
705    2008         9         1880.5000000000    71.85
705    2008        10         3009.5000000000    36.56
705    2009        9         1674.0000000000    2.99
705    2009        11        2645.0000000000    4.46
705    2009        12        2609.0000000000    5.01
705    2010        1         4126.0000000000    9.23
705    2010         2        364.9000000000    0.68
741    2008        6         2408.9100000000    3.02
741    2008        7         3490.0000000000    22.71
741    2008        8          4094.0000000000    2.08
741    2008        9          2553.0000000000    3.79
741    2008        10         4603.0000000000    1.44
741    2008        11         13417.0000000000    10.69
741    2008        12         15892.0000000000    27.69
741    2009        1          39519.0000000000    47.69
741    2009        3          21589.0000000000    12.77
741    2009        4          19399.0000000000    15.75
741    2009        5          5196.0000000000    6.12
741    2009        7          5035.5000000000    8.10
741    2009        8          2632.5000000000    3.48
741    2009        9          4981.5000000000    9.76
741    2009        11         2175.0000000000    4.18
741    2009        12         3886.0000000000    9.33
741    2010        1          4421.0000000000    10.69
搜索更多相关主题的帖子: 语句 SQL 
2010-03-11 09:18
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
设xx是你的表名.
select xx.* from xx ,
    (select a.fitemid,a.fyear,max(b.fperiod) fperiod from
        (select fitemid,max(fyear) fyear from xx group by fitemid) a
            left outer join xx b on a.fitemid=b.fitemid and a.fyear=b.fyear
    group by a.fitemid,a.fyear) c
where xx.fitemid=c.fitemid and xx.fyear=c.fyear and xx.fperiod=c.fperiod

★★★★★为人民服务★★★★★
2010-03-11 14:38
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
收藏
得分:0 
不好意思,上面的还是不行,虽然它能做到只查出最近一期的数据,但是假设最大的fyear,最大的fperiod里仍有相同的fitemid,只是最后两们栏位不同而己,这样又是出来了多笔记录

你微笑的面對整個世界,整個世界也將會微笑的面對你。
2010-03-12 17:09
rock10822
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-1-18
收藏
得分:0 
不知道这样行不行
use a
go
select distinct fitemid,fyear=max(fyear),fperiod=max(period),fbegqty,fbegbal
from b
go


  补充:这里的a 表示的是数据库的名称
        b表示的是这个表的名称
2010-03-16 15:14
快速回复:求助关于SQL语句的实现
数据加载中...
 
   



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

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