怎样写这样的汇总SQL

拓狼 2003-08-08 11:26:18
目前有一下记录:
QUARTER EXPECT1 EXPECT2 FACT1 FACT2
----- ---------- ---------- ---------- ----------
20021 1937.7 108750.3 1944.6 108163.8
20022 1937.7 108750.9 2060.3 111563.9
20023 1937.7 108750.9 2056.6 111434.5
20024 1937.7 108750.9 2026.3 110721.3
20031 2041.65 110465.75 2065 115966
20032 1664.65 123003.63 1790 90477
20033 2073 112000 0 0
20034 2072 112000 0 0

其中每一行为每一个季度的值,现在希望在2002年2季度一行显示
的值为2002年1季度与2002年2季度和的值,依此类推。

谢谢各位!!!
...全文
21 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
拓狼 2003-08-28
  • 打赏
  • 举报
回复
多谢各位,这段时间较忙,没有来得及结贴,是在抱歉得很。
拓狼 2003-08-08
  • 打赏
  • 举报
回复
当然是从第一季度开始的累计值
nyfor 2003-08-08
  • 打赏
  • 举报
回复
你这个以此类推我找不到依据,是当前季度值为前一季度值加本季度值呢还是从第一季度开始的累计值?
使用分析函数可以很容易的实现你的需求。
Lastdrop 2003-08-08
  • 打赏
  • 举报
回复
select a.quarter,sum(b.expect1),sum(b.expect2),sum(b.fact1),sum(b.fact2) from yourtable a, yourtable b
where b.quarter<=a.quarter
group by a.quarter;
wangqiu 2003-08-08
  • 打赏
  • 举报
回复
select k.quarter,k.wxpect1,k.expect2,k.fact1,k.fact2 from 表 k where exists(select sum(d.wxpect1),sum(d.expect2),sum(d.fact1),sum(d.fact2) from 表 d where d.quarter in(k.quarter)
beckhambobo 2003-08-08
  • 打赏
  • 举报
回复
以季度来分组:
select QUARTER,EXPECT1,sum(EXPECT1) over(partition by substr(QUARTER,5,1) order by substr(QUARTER,1,4)) from tab1 order by QUARTER
以年来分组:
select QUARTER,EXPECT1,sum(EXPECT1) over(partition by QUARTER order by QUARTER) from tab1 order by QUARTER
nyfor 2003-08-08
  • 打赏
  • 举报
回复
我的第二个语句就是你要的。
拓狼 2003-08-08
  • 打赏
  • 举报
回复
每年的某一季度的值等于该年的该季度以及该年该季度以前季度值的和,不知说清楚否
nyfor 2003-08-08
  • 打赏
  • 举报
回复
对了,还有点没搞清楚,就是2003年第一季度是不是2002年所有的和加上本季度的值,如果是这样,就用下面这个,去掉分组

select QUARTER,EXPECT1,
sum(EXPECT1) over (order by QUARTER)
as EXPECT1_sum
from table1;
nyfor 2003-08-08
  • 打赏
  • 举报
回复
select QUARTER,EXPECT1,
sum(EXPECT1) over (partition by substr(QUARTER,1,4) order by QUARTER)
as EXPECT1_sum
from table1;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧