-1

毎日のデータ (trunc(DM_OWNER.LD_LEG_DW.CPLD_DTT)) を月ごとに合計しようとしています。これは Web Intelligence BI レポートで作成されます。

SELECT
  DM_OWNER.LD_LEG_DW.LGST_GRP_CD,
  DM_OWNER.LGST_GRP_T.LGSTGRP_DESC,
  DM_OWNER.LD_LEG_DW.CARR_CD,
  DM_OWNER.LD_LEG_DW.LD_LEG_ID,
  DM_OWNER.LD_LEG_DW.BILL_TO_CUST_CD,
  trunc(DM_OWNER.LD_LEG_DW.CPLD_DTT),
  trunc(DM_OWNER.VCHR_AP_T.CRTD_DTT),
  AP_Detail.PYMNT_AMT_DLR
FROM
  DM_OWNER.LD_LEG_DW,
  DM_OWNER.LGST_GRP_T,
  DM_OWNER.VCHR_AP_T,
  DM_OWNER.CHRG_DETL_T_NOTOTAL_V  AP_Detail
WHERE
  ( DM_OWNER.LD_LEG_DW.LD_LEG_ID=DM_OWNER.VCHR_AP_T.LD_LEG_ID(+)  )
  AND  ( DM_OWNER.VCHR_AP_T.VCHR_NUM=AP_Detail.VCHR_NUM_AP  )
  AND  ( DM_OWNER.LD_LEG_DW.LGST_GRP_CD=DM_OWNER.LGST_GRP_T.LGST_GRP_CD  )
  AND  
  (
   DM_OWNER.LD_LEG_DW.LGST_GRP_CD  In  ( 'PBRK'  )
   AND
   trunc(DM_OWNER.VCHR_AP_T.CRTD_DTT)  >=  '01-10-2012 00:00:00'
  )
4

2 に答える 2

2

明確なフィールド名やデータ構造の説明がなければ、これはあいまいすぎます。しかし原則は

select 
     displayfields,
     year(datefield), month(datefield), 
     sum(valuefield)
from yourtable
group by 
     displayfields,
     year(datefield), month(datefield), 
于 2012-10-16T13:40:57.560 に答える
0

クエリの詳細に入ることなく、一般的なアプローチを次に示します。

CAST は厄介ですが、これには実際の DATETIME をグルーパーとして提供できるという利点があります。

SELECT
   SUM(Amount) AS MonthTotal,
   CAST(CAST(YEAR(DateCollected) AS VARCHAR(4)) 
     + '/' + CAST(MONTH(DateCollected) AS VARCHAR(2)) 
     + '/01' AS DATETIME) AS PaymentMonth
FROM
   PaymentsReceived
GROUP BY
   CAST(CAST(YEAR(DateCollected) AS VARCHAR(4)) 
     + '/' + CAST(MONTH(DateCollected) AS VARCHAR(2)) + '/01' AS DATETIME)
于 2012-10-16T13:48:11.653 に答える