紧急!如何多表计算?(100分)

  • 主题发起人 主题发起人 lkpc
  • 开始时间 开始时间
L

lkpc

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现下述功能,用SQL?
ACCESS库
表一、

单位编号(dw) 工资(gz)

01 200
02 300
01 400
02 200

表二、

单位编号(dw) 奖金(jj)

01 100
02 100
01 100
02 100

得到数据如下:
表三

单位编号 工资总额 奖金总额 总费用
dw gzz jjz zfy(=gzz+jjz)

01 600 200 800
02 500 200 700
 
select 单位,(select sum(gz) from 表一 group by 单位)as gzz,
(select sum(jj) from 表二 group by 单位) as jjz,
(gzz+jjz) as zfy
from 表一 ,表二
where biao1.danwei=biao2.danwei
group by danwei
 
select b1.dw,isnull(sum(gz),0) as gzz,isnull(sum(jj),0) as jjz,isnull(sum(gz+jj),0) as zfy
from b1,b2
where b1.dw=b2.dw
group by b1.dw
order by b1.dw
 
谁来检分?
 
在ACCESS里只用一条SQL做不到,你可以建立一中间表,
将工资的资料加总后存到此表(tmp_gz)(第二次使用前要清除临时表内容)
insert into tmp_gz select dw,sum(gz)
from gz group by dw
然后再用一条SQL语句:
select tmp_gz.dw,tmp_gz.gz,sum(jj.jj) from tmp_gz, jj
where tmp_gz.dw=jj.dw
group by tmp_gz.dw,tmp_gz.gz
 
上个问题我自己解决了,这么快就有朋友答复了,我还没来得及看,
如果正确的话我会给分的。现在问另一个问题,
此问题是从一个表中统计多项费用:
我现在把数据库导入到SQL 2000了!看看如何实现?
表一、
单位编号 费用类型 金额
dw lx je

01 A 100
01 B 200
01 C 100
01 A 100

02 A 300
02 B 400
02 C 100
02 B 100

计算后得到如下表:

单位编号 分类费用金额 合计金额
A B C
01 200 200 100 500
02 300 500 100 900
 
我验证了一下,yhaochuan朋友的答案是可行,再上面的两位答案是行不通的。
 
第二个问题我自己也已经解决了!暂时不结束,等等其他答案!
 
第二个问题我是用临时表解决的
其实很简单
 
insert into 表3
select a.dw as dw,sum(a.gz) as gzz,sum(b.jj) as jjz,sum(a.gz+b.jj) as zfy
from 表1 a,表2 b where a.dw=b.dw
group by a.dw
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
I
回复
0
查看
876
import
I
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部