日期:2014-05-17  浏览次数:20923 次

怎么分组求和?
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