求一SQL语句 ( 积分: 100 )

  • 主题发起人 主题发起人 zlibo
  • 开始时间 开始时间
Z

zlibo

Unregistered / Unconfirmed
GUEST, unregistred user!
两个表,第一个表中是各用户的金额,第二个表中是各用户每次的花销,求各用户目前的余额

姓名 金额
张三 100
李四 100
王五 100

日期 姓名 花销
2007-1-1 张三 20
2007-2-3 张三 25
2007-5-9 张三 25
2007-5-8 李四 52
2007-2-5 李四 10
2007-6-9 王五 41

写一SQL语句,得到的结果应如下表:
姓名 余额
张三 30
李四 48
王五 59
 
a01 a02
姓名 金额
张三 100
李四 100
王五 100

b01 b02 b03
日期 姓名 花销
2007-1-1 张三 20
2007-2-3 张三 25
2007-5-9 张三 25
2007-5-8 李四 52
2007-2-5 李四 10
2007-6-9 王五 41

写一SQL语句,得到的结果应如下表:
姓名 余额
张三 30
李四 48
王五 59

select a.a01,(a.a02-c.bsum) as smod from a,
(
select b.b01,b.b02,sum(b.bo3) as bsum from b
group by b.b01,b.b02) c
where a.a01=c.c02
 
01 a02
姓名 金额
张三 100
李四 100
王五 100

b01 b02 b03
日期 姓名 花销
2007-1-1 张三 20
2007-2-3 张三 25
2007-5-9 张三 25
2007-5-8 李四 52
2007-2-5 李四 10
2007-6-9 王五 41

select a.a01,(a.a02-c.bsum) as smod from a,
(
select b.b01,b.b02,sum(b.bo3) as bsum from b
group by b.b01,b.b02) c
where a.a01=c.c02
 
定义两张表分别为 TabelA(Name, Money)和TabelB(RegDate, Name, Spending);
SQL语句如下
select TabelA.Name as Name, (TabelA.Money - Sum(TabelB.Spending)) as Money from
TabelA, TabelB where (TabelA.Name = TabelB.Name) Group by Name;
 
Select A.姓名,(A.金额 - B.花销) as 余额
From A left join
(Select 姓名,Sum(花销) as 花销 From TableB Group by 姓名) as B
On A.姓名 = B.姓名
 
meng_xia_xue寫的有問題吧。
 
select a.xm, ye = je - zhx from table1 a
left join
(select xm, sum(hx)as zhx from table2 group by xm)b
on a.xm = b.xm
 
假设第一个表表名为table1,第二个表的表名为table2,语句如下:
select a.姓名,a.金额-(select sum(b.花销) from table2 b where b.姓名=a.姓名) as 余额 from table1 a
 
select 姓名,金额
from 表A
union all
select 姓名,-(花销)
from 表B
insert into #temp
select 姓名,sum(金额) as '余额'
from #temp
group by 姓名
order by 姓名
 
LZ:
为何李四的100-(52+10)=48?
 
.........

数学没过关
 

Similar threads

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