求一个存储过程

wjn161 2008-12-17 01:25:40
A表,B表,C表中有多条只有一个字段可能相同的记录,如何从这些表中读取这个相同的字段,然后除去重复,写入另一个表中(可以是临时表,不能删除原表~ )
例如:
A表:SCQ_ID SCQ_Title Range
1 A 10
2 B 09
3 C 10
4 D 08
//////////////////////////////
B表:MCQ_ID MCQ_Title Range
1 A1 09
2 B1 09
3 C1 10
4 D1 08
/////////////////////////////
C表 :LCQ_ID LCQ_Title Range
1 A2 07
2 B2 09
3 C2 08
4 D2 08
//////////////////////////////
目标表: Range_ID Range
1 07
2 08
3 09
4 10
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dobear_0922 2008-12-17
  • 打赏
  • 举报
回复
--> By dobear_0922(小熊) 2008-12-17 13:31:28
--> 测试数据:[A]
create table [A]([SCQ_ID] int,[SCQ_Title] varchar(1),[Range] varchar(2))
insert [A]
select 1,'A','10' union all
select 2,'B','09' union all
select 3,'C','10' union all
select 4,'D','08'
--> 测试数据:[B]
create table [B]([MCQ_ID] int,[MCQ_Title] varchar(2),[Range] varchar(2))
insert [B]
select 1,'A1','09' union all
select 2,'B1','09' union all
select 3,'C1','10' union all
select 4,'D1','08'
--> 测试数据:[C]
create table [C]([LCQ_ID] int,[LCQ_Title] varchar(2),[Range] varchar(2))
insert [C]
select 1,'A2','07' union all
select 2,'B2','09' union all
select 3,'C2','08' union all
select 4,'D2','08'

--> 目标数据:[D]
create table D(Range_ID int identity(1,1), [Range] varchar(2))
go
create proc p1 as
begin
truncate table D
insert D select [Range] from A
union select [Range] from B
union select [Range] from C order by [Range]
end
GO

exec p1

select * from D
/*
Range_ID Range
----------- -----
1 07
2 08
3 09
4 10

(4 行受影响)
*/



drop proc p1
drop table A,B,C,D
dobear_0922 2008-12-17
  • 打赏
  • 举报
回复
create proc p1 as
begin
insert [目标表] select Range from A表
union select Range from B表
union select Range from C表
end
GO
水族杰纶 2008-12-17
  • 打赏
  • 举报
回复
SELECT DISTINCT * FROM (
SELECT * FROM TA
UNION ALL
SELECT * FROM TB
UNION ALL
SELECT * FROM TC)t
liangCK 2008-12-17
  • 打赏
  • 举报
回复
没看懂.

34,576

社区成员

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

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