在SQL中按月求和
我试图按月汇总我的每日数据(trunc(DM_OWNER.LD_LEG_DW.CPLD_DTT)。这是在Web Intelligence BI报告中创建的在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
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:根据
(+)判断,可能是OracleWHERE
子句中的
。@AndriyM-Afaik这是不使用ANSI-92语法时多个RDBMS的标准。@Dems:啊,我明白了,谢谢,我不知道,我认为这是Oracle专有的语法扩展。如果数据跨越一年以上?@Dems,那么我添加year函数。