楼主: darkstorm

[精华] SQL 大挑战-- 可以放到精华区的几个命题

[复制链接]
论坛徽章:
0
51#
发表于 2002-11-27 17:32 | 只看该作者

试试看

你可以试试select sum(收入-支出) over(日期) from Table

使用道具 举报

回复
论坛徽章:
0
52#
发表于 2002-12-28 17:14 | 只看该作者
谢谢指点,受益匪浅

使用道具 举报

回复
论坛徽章:
0
53#
发表于 2003-1-10 12:32 | 只看该作者
UP

使用道具 举报

回复
论坛徽章:
1
会员2006贡献徽章
日期:2006-04-17 13:46:34
54#
发表于 2003-1-27 15:43 | 只看该作者

怎么样把BEGN也加入呢?

darkstorm:
请问,在你的视图里怎么做才能再加入一列呢:
如:
RQ           INCOME   OUTCOME   BALANCE
--------- --------- --------- ---------
01-MAR-00        50        30        20
02-MAR-00        45        60         5
03-MAR-00         0         0         5
04-MAR-00         0         0         5
05-MAR-00       120        20       105
变为:
RQ           INCOME   OUTCOME   BALANCE   BEGIN
--------- --------- --------- ---------
01-MAR-00        50        30        20                   0
02-MAR-00        45        60         5                   75
03-MAR-00         0         0         5                      5
04-MAR-00         0         0         5                      5
05-MAR-00       120        20       105                  125

使用道具 举报

回复
论坛徽章:
0
55#
发表于 2003-8-20 09:07 | 只看该作者
最近很想系统地学习一下SQL TUNNING的相关内容。
请各位高人指点推荐哪里有相关的电子书下啊?
expert one on one有下吗?

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
56#
发表于 2003-8-22 10:00 | 只看该作者
真是经典,看得有些糊涂,花点时间好好研究一下!

使用道具 举报

回复
论坛徽章:
0
57#
发表于 2004-3-1 11:44 | 只看该作者
table: test_hg(date11,incom,outgo)

select    date11,
          income,
                  outgo,
                  sum(balance) over(partition by date11 order by date11)
from      (select     date11,
                      income,
                                          outgo,
                                          income-outgo balance
                         from     test_hg)

使用道具 举报

回复
论坛徽章:
0
58#
发表于 2004-11-7 15:23 | 只看该作者
[PHP]
-- Created on 2004-11-7 by 烟雾墙
declare
  -- Local variables here
  cursor cur_a is select distinct a.d from a;
  cursor cur_b(v_d a.d%type) is select sum(a.i) sumi,sum(a.o) sumo from a where a.d=v_d;
  s number:=0;
begin
  -- Test statements here
  for c_a in cur_a loop
    for c_b in cur_b(c_a.d) loop
      s:=s+c_b.sumi-c_b.sumo;
      dbms_output.put_line(to_char(c_a.d,'yyyy/mm/dd')||' '||c_b.sumi||' '||c_b.sumo||' '||s);
    end loop;
  end loop;
end;
[/PHP]
可以完成,题1,题2的要求。
运行结果:
2000/03/01 50 30 20
2000/03/02 45 60 5
2000/03/05 60 10 55

题3要重新想一下了。

使用道具 举报

回复
论坛徽章:
0
59#
发表于 2004-11-7 15:57 | 只看该作者
题3想出来了。
[PHP]
-- Created on 2004-11-7 by 烟雾墙
declare
  -- Local variables here
  min_d a.d%type;
  max_d a.d%type;
  cur_d a.d%type;
  max_sub_min binary_integer:=0;
  cursor cur_b(v_d a.d%type) is select sum(a.i) sumi,sum(a.o) sumo from a where a.d=v_d;
  s number:=0;
begin
  -- Test statements here
  select min(a.d),max(a.d) into min_d,max_d from a;
  max_sub_min:=trunc(max_d-min_d);
  for n_day in 0..max_sub_min loop
    cur_d:=min_d+n_day;
    for c_b in cur_b(cur_d) loop   
      s:=s+Nvl(c_b.sumi,0)-Nvl(c_b.sumo,0);
      dbms_output.put_line(to_char(cur_d,'yyyy/mm/dd')||' '||Nvl(c_b.sumi,0)||' '||Nvl(c_b.sumo,0)||' '||s);
    end loop;
  end loop;
end;
[/PHP]
运行结果:
2000/03/01 50 30 20
2000/03/02 45 60 5
2000/03/03 0 0 5
2000/03/04 0 0 5
2000/03/05 60 10 55

使用道具 举报

回复
论坛徽章:
0
60#
发表于 2004-11-27 17:43 | 只看该作者
create table t(vt date, a number(9,2), b number(9,2));

--
select v1.dt,v1.a,v1.b,sum((v2.a - v2.b )) ye from t v1, t v2 where v2.dt <= v1.dt group by v1.dt,v1.a,v1.b;

DT                    A          B         YE
------------ ---------- ---------- ----------
2004/01/01           50         30         20
2004/01/02           45         60          5
2004/01/03           60         10         55
2004/01/04           60         10        105

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表