我这个报表原先的日期字段是取得字段扩展来的 现在想实现图片中得红字效果 求大佬指点
直接SQL中处理好即可
思路:按照工厂进行聚合即可,并求出对应日期的max和min,同时拼接一个新字段
以MYSQL为例,SQL如下,具体看你数据库哈
select
工厂,异常类型,
(case when max(日期)=min(日期)
then min(日期)
else CONCAT(min(日期) ,"-",max(日期)) end) as 日期,
sum(异常次数) as 次数
from tab
group by 工厂,异常类型
日期字段设置不扩展,不过也不能显示成你要的效果,这个要自定义值才行
这样尝试下,通过3列模拟实现这个效果:
1)列1存放条件1如“武汉卷烟厂”对应日期的最小值,居右
2)增加两个辅助列,辅助列1专门放“-”,居中
3)辅助列2放条件1如“武汉卷烟厂”对应日期的最大值,居左
4)然后通过设置单元格边框颜色,去掉无用的颜色,最终实现这个效果
但是我不清楚你的扩展是按照什么来的,可能还要设置下扩展的父格
sql样例,其中 mindate +'-'+maxdate 连接时日期需要转化为字符串类型,可以用CONVERT(varchar(100), GETDATE(), 23) 来转换:
select 工厂,case when maxdate=mindate then maxdate else mindate +'-'+maxdate end 日期区间
from (
select 工厂,max(日期) maxdate,min(日期) mindate from 表名称 group by 工厂
) s