我怎么才能把一个列数分成几个月呢?

fivyi3re  于 2022-10-04  发布在  Oracle
关注(0)|答案(1)|浏览(122)

这里有一个问题,关于我如何打印每个月签署的合同的计数。这是我的代码:

SELECT COUNT(A.CONTRACT_NUMBER) AS count

FROM DM_SALES.V_SALES_DM_DATA A
  LEFT JOIN DM_SALES.V_SALES_DM_CONTRACT_BUNDLE VSR ON A.CONTRACT_NUMBER = VSR.CONTRACT_NUMBER 

WHERE 1=1
  AND VSR.NAME_PRODUCER LIKE '%OPPO%'
  AND A.CONTRACT_STATE <> 'Cancelled' 
  AND a.cnt_signed=1 
  AND A.LOAN_TYPE = 'Consumer Loan'
  AND A.DTIME_SIGNATURE >= '01-01-2022'

GROUP BY (A.DTIME_SIGNATURE, 'yyyy-mm') 
;

但结果是:

我想把它打印出来就像这样

月份|个数

2022年-01年|10000

2022年至2002年|12000

谢谢!

0lvr5msh

0lvr5msh1#

包括在select列列表中。

此外,您必须修复group by子句(您缺少to_char函数)和日期值(我假定dtime_signatureDATE数据类型;使用日期文字或to_date函数,并使用适当的格式模型)。更改在以下代码中指示:

SELECT TO_CHAR (a.dtime_signature, 'yyyy-mm') AS months,     --> here
         COUNT (a.contract_number) AS COUNT
    FROM dm_sales.v_sales_dm_data a
         LEFT JOIN dm_sales.v_sales_dm_contract_bundle vsr
            ON a.contract_number = vsr.contract_number
   WHERE     1 = 1
         AND vsr.name_producer LIKE '%OPPO%'
         AND a.contract_state <> 'Cancelled'
         AND a.cnt_signed = 1
         AND a.loan_type = 'Consumer Loan'
         AND a.dtime_signature >= DATE '2022-01-01'            --> here
GROUP BY TO_CHAR (a.dtime_signature, 'yyyy-mm');               --> here

相关问题