学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

请教2个问题

请教2个问题

TABLE如下

日期
收入
支出

2000/3/1 50 30
2000/3/2 45 60
2000/3/5 60 10
2000/3/5 60 10
能否用SELECT語句得出以下結果

1.
日期
收入
支出
餘額

2000/3/1 50 30 20
2000/3/2 45 60 5
2000/3/5 120 20 105
2.
日期
收入
支出
餘額

2000/3/1 50 30 20
2000/3/2 45 60 5
2000/3/3 0 0 5
2000/3/4 0 0 5




1.SQL Plus產生以下報表.(scott/tiger@mdstest)


   1.使用表emp,dept
   2.寫成一個可以用在SQL Plus中執行的Script

使用SQLPluscolumn等定義

   3. Format



部門名稱
人數
工資總額



        A                       2             1000
        B                       3             2000
        sum                                   3000
最后一行SUM怎么加?

TOP

你的问题不难,我明天再给你答案吧,现在没空。
天下归心

TOP

第一个问题:
SQL> select * from test;

COLA             COLB       COLC
---------- ---------- ----------
2000/03/01         50         30
2000/03/02         45         60
2000/03/05         60         10
2000/03/05         60         10

1.
select a,b,c,sum(d) over (order by a asc rows between unbounded preceding and current row) d from(
select cola a,sum(colb) b,sum(colc) c,sum(colb)-sum(colc) d from test
group by cola order by cola
) order by a
/

A                   B          C          D
---------- ---------- ---------- ----------
2000/03/01         50         30         20
2000/03/02         45         60          5
2000/03/05        120         20        105

2.
select a,b,c,sum(d) over (order by a rows between unbounded preceding and current row) d
from(
select cold a,nvl(sum(colb),0) b,nvl(sum(colc),0) c,nvl(sum(colb)-sum(colc),0) d
from test,
(select trunc(to_date('2000/03/01','yyyy/mm/dd'))+rownum-1 cold from dual
connect by rownum<(select to_number(to_char(max(cola),'dd'))+1 from test)) test2
where test2.cold=test.cola(+)
group by test2.cold
order by test2.cold
)
/

A                   B          C          D
---------- ---------- ---------- ----------
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        120         20        105

第二个问题:
SQL> select * from test;

NAME         NUM        SAL
----- ---------- ----------
A              2       1000
B              3       2000

select nvl(name,'sum'),num,sum(sal) from test
group by rollup(name,num)
having grouping_id(name,num)!=1
/

NVL(N        NUM   SUM(SAL)
----- ---------- ----------
A              2       1000
B              3       2000
sum                    3000
天下归心

TOP

LS厉害!
IT精英如同彩票:平凡的人像5块也中不到一样普遍,努力一点你中了5元保了个本。奖金越高,机率也就越小,付出的也越多,盖茨如同500万一样稀有。虽然每天忙碌而平凡,但我努力成为精英,做梦中了500万。 MyAudiA8@Gmail.com

TOP

厉害
地球人的缺点与恶习集一身,小心感染不良恶习

TOP

发新话题