Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中按月求和_Sql - Fatal编程技术网

在SQL中按月求和

在SQL中按月求和,sql,Sql,我试图按月汇总我的每日数据(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

我试图按月汇总我的每日数据(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'
  )

如果没有明确的字段名,或者没有对数据结构的解释,这就太模糊了

select 
     displayfields,
     year(datefield), month(datefield), 
     sum(valuefield)
from yourtable
group by 
     displayfields,
     year(datefield), month(datefield), 

在不深入您的查询细节的情况下,这里有一个通用方法

演员阵容很糟糕,但这样做的好处是让你作为一个石斑鱼有一个真实的约会时间

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)

哪些字段包含您尝试分组的日期?它是什么数据类型?您尝试聚合哪些字段?它们是什么数据类型?您使用的是哪些RDBMS?@Dems:根据
(+)判断,可能是Oracle
WHERE
子句中的
。@AndriyM-Afaik这是不使用ANSI-92语法时多个RDBMS的标准。@Dems:啊,我明白了,谢谢,我不知道,我认为这是Oracle专有的语法扩展。如果数据跨越一年以上?@Dems,那么我添加year函数。