求update语句!

hdkkk 2003-08-18 07:19:06
表结构 fact_balance
DATE_ID char
DOMAIN_ID decimal
DATABIZ_TYPE_ID int
BANK_ID int
BANK_FEE decimal
BANK_FEE_CHG decimal
BILL_CNT decimal
-----------------------------
唯一键:
DATE_ID
DOMAIN_ID
DATABIZ_TYPE_ID
BANK_ID
-----------------------------
要求:update BANK_FEE_CHG 使得该字段=当日的BANK_FEE-前日的BANK_FEE_CHG
其中,DATE_ID为日期格式yyyymmdd的字符串
...全文
30 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hdkkk 2003-08-19
  • 打赏
  • 举报
回复
有没有可能是因为我的唯一键:
DATE_ID
DOMAIN_ID
DATABIZ_TYPE_ID
BANK_ID
----------------
DOMAIN_ID
DATABIZ_TYPE_ID
BANK_ID
这三个字段 的每一个值 不都具有连续的 DATE_ID ?
比如说 3030 2 2 ,但是只有20031220的date_id,没有20031221,20031219
所以各位大虾的sql
语句运行完了后,还是null值?

hdkkk 2003-08-19
  • 打赏
  • 举报
回复
up
hdkkk 2003-08-18
  • 打赏
  • 举报
回复
20030121 101052 1 6 740225.39 NULL 624
20030910 4021 2 4 627184.19 NULL 1470
20030418 4109 3 5 552157.69 NULL 1115
20030809 1004 2 5 555566.56 NULL 907
20031103 4269 1 2 562755.74 NULL 1883
20030304 1002 3 5 688910.37 NULL 1891
20030621 4032 3 5 683793.27 NULL 1130
20030420 3050 1 5 690327.26 NULL 776
20030210 4346 4 5 580709.58 NULL 1086
20030302 4099 1 5 698824.78 NULL 1687
20030119 4081 2 5 503208.99 NULL 1422
20030915 3037 3 5 624018.66 NULL 816
20030410 1053 1 2 619517.68 NULL 1036
20030521 4108 4 5 797204.27 NULL 1816
20030131 1048 4 3 750800.27 NULL 829
20030520 4280 3 1 735846.25 NULL 1277
20030628 4366 1 3 699729.35 NULL 538
20030917 4087 3 4 639239.63 NULL 791
20030202 1056 2 3 609012.88 NULL 814
20030523 4032 3 2 670456.06 NULL 1766
20030506 4166 3 5 540184.40 NULL 1616
20030802 4345 2 2 654598.93 NULL 1932
20030528 4269 4 4 516555.84 NULL 1436
20030212 4106 2 4 718574.79 NULL 1829
20030606 4082 1 1 651283.92 NULL 1075
20030718 1004 3 4 669965.36 NULL 1971
20030528 4192 4 2 706794.35 NULL 1220
20030108 4329 2 2 670474.08 NULL 969
20030612 4185 2 1 786751.66 NULL 1313
20031220 3030 2 2 587130.18 NULL 510
20030514 4125 3 5 682342.30 NULL 1032
20031128 4172 2 4 595860.36 NULL 922
pengdali 2003-08-18
  • 打赏
  • 举报
回复
update fact_balance set


BANK_FEE_CHG=fact_balance.BANK_FEE-tem.BANK_FEE_CHG

from (select * from fact_balance) tem


where tem.BANK_ID=fact_balance.BANK_ID and tem.DOMAIN_ID=fact_balance.DOMAIN_ID

and tem.DATABIZ_TYPE_ID=fact_balance.DATABIZ_TYPE_ID

and datediff(day,tem.DATE_ID,fact_balance.DATE_ID)=1
pengdali 2003-08-18
  • 打赏
  • 举报
回复
update fact_balance set


BANK_FEE_CHG=a.BANK_FEE-tem.BANK_FEE_CHG

from (select * from fact_balance) tem


where tem.BANK_ID=fact_balance.BANK_ID and tem.DOMAIN_ID=fact_balance.DOMAIN_ID

and tem.DATABIZ_TYPE_ID=fact_balance.DATABIZ_TYPE_ID

and datediff(day,tem.DATE_ID,fact_balance.DATE_ID)=1
benxie 2003-08-18
  • 打赏
  • 举报
回复
你把值SELECT出来给大家看看吧。
hdkkk 2003-08-18
  • 打赏
  • 举报
回复
txlicenhe(不做技术高手)

结果不对
hdkkk 2003-08-18
  • 打赏
  • 举报
回复
大力

服务器: 消息 8154,级别 16,状态 1,行 1
表 'fact_balance' 不明确。
pengdali 2003-08-18
  • 打赏
  • 举报
回复
update fact_balance set BANK_FEE_CHG=a.BANK_FEE-tem.BANK_FEE_CHG from fact_balance a,fact_balance tem where tem.BANK_ID=a.BANK_ID and tem.DOMAIN_ID=a.DOMAIN_ID and tem.DATABIZ_TYPE_ID=a.DATABIZ_TYPE_ID and datediff(day,tem.DATE_ID,a.DATE_ID)=1
txlicenhe 2003-08-18
  • 打赏
  • 举报
回复
update a set BANK_FEE_CHG=BANK_FEE-(select BANK_FEE_CHG from fact_balance where BANK_ID=a.BANK_ID and DOMAIN_ID=a.DOMAIN_ID and DATABIZ_TYPE_ID=a.DATABIZ_TYPE_ID and datediff(day,DATE_ID,a.DATE_ID)=1)
from fact_balance a
hdkkk 2003-08-18
  • 打赏
  • 举报
回复
服务器: 消息 107,级别 16,状态 3,行 1
列前缀 'fact_balance' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,行 1
列前缀 'fact_balance' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,行 1
列前缀 'fact_balance' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,行 1
列前缀 'fact_balance' 与查询中所用的表名或别名不匹配。
pengdali 2003-08-18
  • 打赏
  • 举报
回复
update fact_balance set BANK_FEE_CHG=BANK_FEE-tem.BANK_FEE_CHG from fact_balance tem where tem.BANK_ID=fact_balance.BANK_ID and tem.DOMAIN_ID=fact_balance.DOMAIN_ID and tem.DATABIZ_TYPE_ID=fact_balance.DATABIZ_TYPE_ID and datediff(day,tem.DATE_ID,fact_balance.DATE_ID)=1
pengdali 2003-08-18
  • 打赏
  • 举报
回复
update fact_balance set BANK_FEE_CHG=BANK_FEE-(select BANK_FEE_CHG from fact_balance tem where tem.BANK_ID=fact_balance.BANK_ID and tem.DOMAIN_ID=fact_balance.DOMAIN_ID and tem.DATABIZ_TYPE_ID=fact_balance.DATABIZ_TYPE_ID and datediff(day,tem.DATE_ID,fact_balance.DATE_ID)=1)

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧