求一个更新表的sql语句
想用一个update把表T1,按用途合计。计算为表T1'的样子.
表T1
标号 内码 用途 账号 借方 贷方
--------------------------------------------------------------
01 01 基本费用 0 0
02 0101 专户 0 0
03 0102 现金 0 0
04 010201 学校出纳 123 10 0
05 010202 分行 321 0 10
06 02 收款户 0 0
07 0201 邮费 156 75 30
表T1'
标号 内码 用途 账号 借方 贷方
--------------------------------------------------------------
01 01 基本费用 10 10
02 0101 专户 0 0
03 0102 现金 10 10
04 010201 学校出纳 123 10 0
05 010202 分行 321 0 10
06 02 收款户 75 30
07 0201 邮费 156 75 30
问题点数:100、回复次数:11Top
1 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-02 12:30:34 得分 0
第一个表的数据经过怎样的计算得到第二个表的数据的?????
逻辑写出来,免得给你计算错了。Top
2 楼win1122(我是谁)回复于 2005-04-02 13:07:08 得分 0
按用途合计,比如:基本费用=专户+ 现金 , 现金 =学校出纳+分行Top
3 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-02 13:09:17 得分 100
这样写了一下,楼主看看对不对。
--建立测试环境
Create table TEST
(标号 varchar(10),
内码 varchar(10),
用途 Nvarchar(20),
账号 varchar(10),
借方 Int,
贷方 Int
)
GO
--插入数据
Insert TEST Values('01','01' ,N'基本费用',Null,0 ,0)
Insert TEST Values('02','0101' ,N'专户' ,Null,0 ,0)
Insert TEST Values('03','0102' ,N'现金' ,Null,0 ,0)
Insert TEST Values('04','010201',N'学校出纳',123 ,10 ,0)
Insert TEST Values('05','010202',N'分行' ,321 ,0 ,10)
Insert TEST Values('06','02' ,N'收款户' ,Null,0 ,0)
Insert TEST Values('07','0201' ,N'邮费' ,156 ,75 ,30)
GO
--测试
Select * from TEST
Update TEST Set 借方=(Select SUM(借方) from TEST Where 内码 Like A.内码+'%'),贷方=(Select SUM(贷方) from TEST Where 内码 Like A.内码+'%') from TEST A
Select * from TEST
--删除测试环境
Drop table TEST
--结果
/*
标号 内码 用途 账号 借方 贷方
01 01 基本费用 NULL 10 10
02 0101 专户 NULL 0 0
03 0102 现金 NULL 10 10
04 010201 学校出纳 123 10 0
05 010202 分行 321 0 10
06 02 收款户 NULL 75 30
07 0201 邮费 156 75 30
*/
Top
4 楼xluzhong(Ralph)回复于 2005-04-02 13:13:27 得分 0
晕!Top
5 楼lishengyu(玉)回复于 2005-04-02 13:14:16 得分 0
update 表T1
set 借方=(select sum(借方) from 表T1 a where a.内码 like 内码+'%'),
set 贷方=(select sum(贷方) from 表T1 a where a.内码 like 内码+'%')
Top
6 楼lishengyu(玉)回复于 2005-04-02 13:17:26 得分 0
update 表T1
set
借方=(select sum(借方) from 表T1 a where a.内码 like 内码+'%'),
贷方=(select sum(贷方) from 表T1 a where a.内码 like 内码+'%')Top
7 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-02 13:22:46 得分 0
楼上的语句测试过吗??明显不行,结果不对。Top
8 楼win1122(我是谁)回复于 2005-04-02 15:10:55 得分 0
to: paoluo(一天到晚游泳的鱼) 不行呀!Top
9 楼newpower888()回复于 2005-04-02 15:31:55 得分 0
我顶....Top
10 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-02 15:39:13 得分 0
怎么不行??我测试是OK的啊。提示是什么错误??Top
11 楼win1122(我是谁)回复于 2005-04-02 16:31:30 得分 0
哦!知道了。谢谢!Top




