如何得到下面的查询结果

Rubi 2006-06-26 12:34:57
表A:
no area a b
1 武汉 0 1
1 恩施 1 1
1 鄂州 2 2
1 江汉 3 3
1 咸宁 62 62
1 十堰 406 406
2 武汉 2 2
2 随州 3 3
2 孝感 7 7
7 黄石 8 8
7 荆州 19 19
7 宜昌 25 25
7 黄冈 1714 1728
7 襄樊 2575 2586
表B:
no area a b
1 十堰 NULL 49 49
1 咸宁 NULL 8 8
2 随州 NULL 1 1
2 孝感 NULL 1 1
7 黄冈 NULL 329 334
7 黄石 NULL 1 1
7 荆州 NULL 2 2
7 襄樊 NULL 291 292
7 宜昌 NULL 1 1


规则如下,如果A表中的no,area 和B表中一样,就用A表中的 A.a-B.a,A.b-B.b
然后如果不符合上面条件的,就不做操作,数据完全复制,最后得出来的结果要和上面的A.a-B.a,A.b-B.b合并在一起,最终得出如下的表,那个sql语句如何写?
1 武汉 0 1
1 恩施 1 1
1 鄂州 2 2
1 江汉 3 3
1 咸宁 54 54
1 十堰 357 357
2 武汉 2 2
2 随州 2 2
2 孝感 6 6
7 黄石 7 7
7 荆州 17 17
7 宜昌 24 24
7 黄冈 1385 1394
7 襄樊 2284 2294
...全文
182 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rubi 2006-06-26
  • 打赏
  • 举报
回复
怎么更新得到的最后数据和我要得结果不一样啊
simonhehe 2006-06-26
  • 打赏
  • 举报
回复
update 表A
set a=表A.a-B.a,b=表A.b-表B.b
from 表A,表B
where 表A.no=表B.no and 表A.area=表B.area
LouisXIV 2006-06-26
  • 打赏
  • 举报
回复
update A
set a=A.a-B.a,b=A.b-B.b
from tableA A inner join tableB B
on A.no=B.no
and A.area=B.area
Rubi 2006-06-26
  • 打赏
  • 举报
回复
我的问题,我知道了,谢谢
Rubi 2006-06-26
  • 打赏
  • 举报
回复
只是我更新得到的居然是这样的
1 鄂州 357 357
1 恩施 24 24
1 江汉 357 357
1 十堰 24 24
1 武汉 357 357
1 咸宁 24 24
2 随州 357 357
2 武汉 24 24
2 孝感 357 357
7 黄冈 24 24
7 黄石 357 357
7 荆州 24 24
7 襄樊 357 357
7 宜昌 24 24

郁闷阿
liangpei2008 2006-06-26
  • 打赏
  • 举报
回复
夜大侠说得没错:)
LouisXIV 2006-06-26
  • 打赏
  • 举报
回复
你的要求就是这样的^^;

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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