当前位置: 代码迷 >> Oracle开发 >> 如何分组求和
  详细解决方案

如何分组求和

热度:52   发布时间:2016-04-24 07:26:51.0
怎么分组求和?
select a.putinmoney,
  a.PUTINFIXEDASSETS,
  a.OUTINVESTMENTPUTINMONEY,
  to_char(a.PERFORMANCEDATE, 'yyyy-mm-dd') PERFORMANCEDATE,
  b.SIGNEDCLASSID,
  b.FILLGROUPID,
  to_char(b.FILLDATE, 'yyyy-mm-dd') FILLDATE,
  b.PROJECTNAME,
  b.CONTRACTAMOUNT,
  b.PROJECTID,
  (select c.name from UUPMS_ENUMS c where c.ENUM_ID = b.SIGNEDCLASSID) SIGNEDCLASSIDNAME,
  (select c.name from UUPMS_ENUMS c where c.ORG = b.FILLGROUPID) FILLGROUPIDname
  from YO_PROJECT_DOMESTIC_PER a, YO_PROJECT_DOMESTIC_SIGNED b
 where a.projectid(+) = b.projectid;

上面是我现在的sql语句,现在要对结果集的putinmoney按照a.projectid分组求和,折腾了半天就是不对,请高人指点下,谢谢!

------解决方案--------------------
SQL code
 select sum(a.putinmoney),b.PROJECTID   from YO_PROJECT_DOMESTIC_PER a, YO_PROJECT_DOMESTIC_SIGNED b where a.projectid(+) = b.projectid group by b.PROJECTID;
------解决方案--------------------
select --a.putinmoney,
a.PUTINFIXEDASSETS,
a.OUTINVESTMENTPUTINMONEY,
to_char(a.PERFORMANCEDATE, 'yyyy-mm-dd') PERFORMANCEDATE,
b.SIGNEDCLASSID,
b.FILLGROUPID,
to_char(b.FILLDATE, 'yyyy-mm-dd') FILLDATE,
b.PROJECTNAME,
b.CONTRACTAMOUNT,
b.PROJECTID,
sum(a.putinmoney) over (partition by b.PROJECTID order by b.PROJECTID),
(select c.name from UUPMS_ENUMS c where c.ENUM_ID = b.SIGNEDCLASSID) SIGNEDCLASSIDNAME,
(select c.name from UUPMS_ENUMS c where c.ORG = b.FILLGROUPID) FILLGROUPIDname
from YO_PROJECT_DOMESTIC_PER a, YO_PROJECT_DOMESTIC_SIGNED b
where a.projectid(+) = b.projectid;
------解决方案--------------------
SQL code
SELECT SUM(A.PUTINMONEY), B.PROJECTID  FROM YO_PROJECT_DOMESTIC_PER A, YO_PROJECT_DOMESTIC_SIGNED B WHERE A.PROJECTID(+) = B.PROJECTID GROUP BY B.PROJECTID
  相关解决方案