通过查询选择的年份,显示这一年中每个月的数据

12.jpg

FineReport yzmeMPMx3261404 发布于 2023-6-19 17:44
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-6-20 19:08

直接你的sql修改成这样就行了:

----------------------------------

保证time与HIREDATE都是标准的日期格式,比如在你的oracel数据库中是这样的格式

2023-05-06或者2023/5/12这样的格式,只要是真正的日期格式,如下代码是一定可以的,如果不可以,请检查

字段类型!!!

---------------------------------------------

select 

to_char(a.time) 月份,

count(a.HEAT_ID) as 方坯连铸的炉数 

from V_REPORT_CCM a 

where a.CCM='1' 

AND a.ESP='0' 

and to_char(HIREDATE,'yyyy')='${y_date}'

GROUP BY to_char(a.time)

image.png

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-6-19 17:53(编辑于 2023-6-20 17:25)

select month(日期字段) yf,sum(数据字段) where year(日期字段)='${控件}' group by month(日期字段)

修改

select tochar(HIREDATE,"yyyy-MM") yf,sum(count(a.HEAT_ID)) num from V_REPORT_CCM a where tochar(HIREDATE,"yyyy")='${控件}' group by tochar(HIREDATE,"yyyy-MM")

  • 白少 白少(提问者) select a.month(time) 1月份,sum(count(a.HEAT_ID))方坯连铸的炉数 from V_REPORT_CCM a where a.CCM=\'1\' AND a.ESP=\'0\' and YEAR(HIREDATE)=\'${date}\' GROUP BY a.month(time) 我这样写报from找不到,其实我的意思是想通过年份控件\'${date}\' 这个来查询1月份,2月份,依次的数据,这种方式可以实现吗?
    2023-06-20 15:08 
  • 用户k6280494 用户k6280494 回复 白少(提问者) 我的写法是sqlserver 你的是什么数据库
    2023-06-20 15:23 
  • 用户k6280494 用户k6280494 回复 白少(提问者) 关键是你连SqlServer的写法抄都抄错 select month(HIREDATE) 1月份,sum(count(a.HEAT_ID))方坯连铸的炉数 from V_REPORT_CCM a where a.CCM=\'1\' AND a.ESP=\'0\' and YEAR(HIREDATE)=\'${date}\' GROUP BY month(HIREDATE)
    2023-06-20 15:26 
  • 白少 白少(提问者) 回复 用户k6280494 oracal数据库
    2023-06-20 17:20 
  • 白少 白少(提问者) oracal数据库的语法怎么写呢!日期字段不就是数据表中的字段名吗?
    2023-06-20 17:23 
最佳回答
0
年年plusLv5中级互助
发布于2023-6-19 17:57

每个月这个可以固定扩展 range(1,12) 就行  然后将数据处理成按月group by的数据,通过月份过滤取出数据,再加上一个条件属性,隐藏列,大于当年当月的的隐藏

  • 4关注人数
  • 589浏览人数
  • 最后回答于:2023-6-20 19:08
    请选择关闭问题的原因
    确定 取消
    返回顶部