关于两个表联合查询的问题

fstao 2005-06-13 05:19:54
有两个表:
t1(f1,f2)和t2(f1,f2)
数据如下:
t1的数据:

f1 f2
A 20
B 30
C 40
E 50
F 60
G 70

t2的数据:
f1 f2
A 90
B 40
F 60
I 30

如果t1.f1=t2.f1时,t1.f2-t2.f2,比如实现的数据如下:
f1 f2
A -70
B -10
C 40
E 50
F 0
G 70
I -30

如果用select 语句能否实现(最好不要用先insert into 一个表,然后update,然后再求值)?不要用游标。
...全文
127 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
631799 2005-06-14
  • 打赏
  • 举报
回复
select isnull(t1.f1,t2.f1),f2=isnull(t1.f2,0)-isnull(t2.f2,0),
f3=case when (isnull(t1.f2,0)=isnull(t2.f2,0)) then t1.f3-t2.f3 else (isnull(t1.f2,0)-isnull(t2.f2,0))end
from t1 full join t2 on t1.f1=t2.f1
fstao 2005-06-13
  • 打赏
  • 举报
回复
t1数据:
f1 f2 f3
A1 A2 10
B1 B2 20
C1 C2 30
E1 D2 40
F1 E2 50
G1 F2 60

t2的数据:
f1 f2 f3
A1 A2 10
B1 B2 20
C1 F2 30
E1 D2 40
F1 E2 50
G1 G2 60

如果t1.f1和t1.f2与t2.f1和t2.f2相等时,t1.f3-t2.f3,比如实现的数据如下:
f1 f2 f3
A1 A2 0
B1 B2 0
C1 C2 30
C1 F2 -30
E1 D2 0
F1 E2 0
G1 F2 60

又如何实现呢?
子陌红尘 2005-06-13
  • 打赏
  • 举报
回复
select
f1 = case when a.f1 is null then b.f1 else a.f1,
f2 = isnull(a.f2,0) - isnull(b.f2,0)
from
t1 a
full outer join
t2 b
on
a.f1 = b.f1
paoluo 2005-06-13
  • 打赏
  • 举报
回复
晕,慢了
子陌红尘 2005-06-13
  • 打赏
  • 举报
回复
select
f1 = case when a.f1 is null then b.f1 else a.f1,
f2 = isnull(a.f2,0) - isnull(b.f2,0)
from
t1 a
full outer join
t2 b
where
a.f1 = b.f1
paoluo 2005-06-13
  • 打赏
  • 举报
回复
应该是这样的



Select
IsNull(T1.f1,T2.f1) As f1,
(IsNull(T1.f1,0)-IsNull(T2.f1,0)) As f2
from T1
Full Join T2
On T1.f1=T2.f1
631799 2005-06-13
  • 打赏
  • 举报
回复
再改:
select isnull(t1.f1,t2.f1),f2=isnull(t1.f2,0)-isnull(t2.f2,0) from t1 full join t2 on t1.f1=t2.f1
子陌红尘 2005-06-13
  • 打赏
  • 举报
回复
update a
set
a.f2 = (a.f2-b.f2)
from
t1 a,t2 b
where
a.f1 = b.f1
631799 2005-06-13
  • 打赏
  • 举报
回复
改一下:
select t1.f1,f2=isnull(t1.f2,0)-isnull(t2.f2,0) from t1 full join t2 on t1.f1=t2.f1
631799 2005-06-13
  • 打赏
  • 举报
回复
select t1.f1,f2=t1.f2-t2.f2 from t1 left join t2 on t1.f1=t2.f1

34,588

社区成员

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

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