首页 > 解决方案 > 行到列,具有复杂的 agg 函数,将计算字段转换为列

问题描述

SELECT substr(cfe.file_name,10),
       cfe.source_file_date,
       count(cs.cash_settlement_key)
FROM   CASH_SETTLEMENT CS
       INNER JOIN CASH_FILE_EVENT CFE
       ON CFE.CASH_FILE_EVENT_KEY=CS.CASH_FILE_EVENT_KEY
WHERE  CFE.SOURCE_FILE_DATE>sysdate-30
and    to_char(CFE.SOURCE_FILE_DATE,'DAY')=to_char(sysdate,'DAY')
and    file_name like '%OIDFC_FUNDING_REPORT.txt%'
group by
       substr(cfe.file_name,10),
       cfe.source_file_date

在此处输入图像描述

我想要像下面这样的输出在 此处输入图像描述

我尝试使用枢轴,但不知道我哪里出错了。

SELECT *
FROM   (
  SELECT substr(cfe.file_name,10),
         cfe.source_file_date,
         count(cs.cash_settlement_key)
  FROM   CASH_SETTLEMENT CS
         INNER JOIN CASH_FILE_EVENT CFE
         ON CFE.CASH_FILE_EVENT_KEY=CS.CASH_FILE_EVENT_KEY
  WHERE  CFE.SOURCE_FILE_DATE>sysdate-30
  and    to_char(CFE.SOURCE_FILE_DATE,'DAY')=to_char(sysdate,'DAY')
  and    file_name like '%OIDFC_FUNDING_REPORT.txt%'
  group by
         substr(cfe.file_name,10),
         cfe.source_file_date
)
PIVOT (
  COUNT(CFE.cash_settlement_key) FOR cfe.source_file_date IN (
    CFE.SOURCE_FILE_DATE>sysdate-30
    and to_char(CFE.SOURCE_FILE_DATE,'DAY')=to_char(sysdate,'DAY')
  )
)

标签: sqloracleoracle11g

解决方案


推荐阅读