根据名称分组,选择最大日期和最小日期的数据,并显示在一行上

 

在数据库中有个表aa

 

现在要根据名称分组,选择最大日期和最小日期的数据,并显示在一行上,

首先要根据名称分组,取得最大日期 然后 union all 根据名称分组,选取最小日期,效果如图

select top 100 percent aa.names,aa.s,aa.createdate from 
(
    (select   top 100 percent names,min(createdate) as 日期
    from aa
    group by names
    )
    union ALL
    (select   top 100 percent names,max(createdate) as 日期
    from aa
    group by names
    )
)t 
inner join aa on t.names=aa.names and t.日期=aa.createdate
order by t.names, t.日期

 

变成一行的话,要按名称查询,先查出最小数据,然后关联刚才的查询结果,条件是名称相等,日期不等

select t1.names,t1.s,t1.createdate,t2.s,t2.createdate from 
(
        select top 100 percent aa.names,aa.s,aa.createdate from 
        (
            select   top 100 percent names,min(createdate) as 日期
            from aa
            group by names    
        )t 
        inner join aa on t.names=aa.names and t.日期=aa.createdate
) t1
left join 
(
        select top 100 percent aa.names,aa.s,aa.createdate from 
        (
            (select   top 100 percent names,min(createdate) as 日期
            from aa
            group by names
            )
            union ALL
            (select   top 100 percent names,max(createdate) as 日期
            from aa
            group by names
            )
        )t 
        inner join aa on t.names=aa.names and t.日期=aa.createdate
)t2 on t1.names=t2.names and t1.createdate <> t2.createdate
order by t1.names

 

一定要用左联接,不然,只有一条的数据,就被过滤掉了。

 

转载于:https://www.cnblogs.com/gates/p/4463862.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件介绍: 资源包含大量的Excel数据透视表应用大全示例文件,对于EXCEL学习尤为帮助。1.1 新手上路:自己的第一个数据透视表.xls2.1轻松改变数据透视表的整体布局.xls2.2使用逆向法设置显示数据透视表的多个页字段数据项.xls2.3使用转移法设置显示数据透视表的多个页字段数据项.xls2.4水平并排显示页面区域中的多个页字段.xls2.5按部门快速创建相应的数据透视表.xls2.6水平展开数据透视表的复合字段.xls2.7使用直接修改法重命名数据透视表字段.xls2.8使用替换法重命名数据透视表字段.xls2.9 按自然月规则调整月字段中的数据项顺序.xls2.10使用拖动法快速改变行字段的数据项排列顺序.xls2.11按指定规则调整部门字段中的数据项顺序.xls2.12以大纲形式显示数据项目.xls2.13在每项分类汇总行后插入空行.xls2.14对数据透视表中的数据执行自动2.15创建影子数据透视表.xls2.16复制数据透视表.xls2.17移动数据透视表.xls2.18显示数据透视表数据源的所有信息.xls2.19禁止显示数据源的明细数据.xls3.1 工作簿打开时自动刷新透视表.xls3.2刷新引用外部数据数据透视表.xls3.3设置数据透视表每10分钟自动刷新.xls3.4使用VBA代码设置自动刷新.xls3.5数据透视表批量刷新.xls3.6清除已删除数据的标题项.xls外部数据源.xls外部数据源2.xls4.1.1数据透视表的自动套用格式.xls4.1.2-1数据透视表刷新后如何保持调整好的列宽.xls4.1.2-2在应用了自动套用格式的数据透视表里保持列宽.xls4.1.3控制数据透视表的行列总计与分类汇总.xls4.1.3-3使用VBA代码控制数据透视表保持固定格式.xls4.1.4控制数据透视表的合并标志.xls4.1.5为数据透视表的每项后面插入空行.xls4.1.6-2快速设置数据透视表的分类汇总格式.xls4.1.6-3在数据透视表中快速选取同类数据.xls4.1.7修改数据透视表中数值型数据的格式.xls4.1.8-1替换行字段中包含“(空白)”字样的数据项.xls4.1.8-2填充列字段空白数据项.xls4.1.8-3快速去除行字段中的空白数据项.xls4.1.9设置错误值的显示方式.xls4.1.10在数据透视表中自定义单元格格式.xls4.2.1利用条件格式突出显示数据.xls4.2.2为数据透视表添加永恒的表格线.xls4.3.1统计各班级各科成绩.xls4.3.2数据透视表美化应用范例.xls4.4解除数据透视表的列数限制.xls5.1使用手动排序.xls5.2.1双击字段名称设置自动排序.xls5.2.2使用菜单命令设置自动5.2.3通过行字段对列字段数据进行排序....5.3 按笔划顺序排序.xls5.4 按自定义顺序排序.xls5.5 对横向排列的列字段标志进行排序.xls5.6显示销售排名前三名.xls5.7显示最小20%的数据.xls6.1组合数据透视表内的文本型数据项.xls6.1 组合数据透视表内的文本型数据项.xls6.2.1 按等距步长组合数值型数据项.xls6.2.2 按不等距步长手动组合数值型数据项.xls6.3.1对日期数据按年月组合.xls6.3.2对日期数据按周组合.xls6.4.1取消手动组合.xls6.4.2取消数值型和日期数据组合.xls6.5.1组合字段数据类型不一致导致分组失败.xls6.5.2日期格式不正确导致分组失败.xls6.5.3数据引用区域失效导致分组失败.xls..............

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值