You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OracleSQL查询两个日期间按月统计的患者支出数据实现方案

Oracle 医院患者月度支出统计SQL实现

核心查询语句

假设业务表实际名为HOSPITAL_BIZ(可替换为你的真实表名),CREATED_DATE为存储格式dd/mm/yyyy的字符串类型字段,查询语句如下:

SELECT
    TO_CHAR(TRUNC(TO_DATE(CREATED_DATE, 'dd/mm/yyyy'), 'MM'), 'MON-YY', 'NLS_DATE_LANGUAGE = AMERICAN') AS MONTH,
    SUM(PT_EXP) AS PT_Expen
FROM
    HOSPITAL_BIZ
WHERE
    TO_DATE(CREATED_DATE, 'dd/mm/yyyy') BETWEEN TO_DATE(:START_INPUT_DATE, 'dd/mm/yyyy') AND TO_DATE(:END_INPUT_DATE, 'dd/mm/yyyy')
GROUP BY
    TRUNC(TO_DATE(CREATED_DATE, 'dd/mm/yyyy'), 'MM')
ORDER BY
    TRUNC(TO_DATE(CREATED_DATE, 'dd/mm/yyyy'), 'MM');

注意事项

  • 若CREATED_DATE是Oracle原生DATE类型,可去掉所有TO_DATE(CREATED_DATE, 'dd/mm/yyyy')的转换逻辑,直接使用字段名即可
  • 语句中的:START_INPUT_DATE、:END_INPUT_DATE为输入参数,分别对应业务传入的起始日期、结束日期,格式要求为dd/mm/yyyy
  • 月份格式化时指定NLS_DATE_LANGUAGE = AMERICAN是为了保证输出为JAN、FEB这类英文月份缩写,避免数据库语言为中文时输出不符合要求的格式
  • WHERE条件直接限定输入的日期范围,无需额外处理首尾月非整月的场景,会自动过滤范围外的日期数据,符合示例中3月仅统计到24日的要求

内容的提问来源于stack exchange,提问作者Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:54:02