当前位置:首页 » 编程语言 » 多表合并成一个表SQL
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

多表合并成一个表SQL

发布时间: 2022-08-10 23:47:10

1. sql server 语句如何将3个表合并成一个表

先说一下我的思路:

  • 首选你把表1,表2,表3中的数据都合并在一起表中,使用union all合并在一起。先不要管姓名是否会重复。

  • 但是在执行合并的时候,需要对每一个待合并的数据,打上一个标签,代表这个是哪个表中来的数据,这个标签最后用于区分同一个人的不同的成绩是分别是多少,不能因为合并在一起后,就把同一个人的三项成绩给搞混了。

  • 合并后的数据进行行转列的操作。

具体的SQL语句如下图所示:


2. sql如何将多个表合并成一个表

--复杂点的方法,


DECLARE @startTime DATETIME --开始的时间

DECLARE @endTime DATETIME --结束的时间

--比如我要得到1月到2月的数据

SET @startTime = '2014-01-01 00:00:00.000' --从新年第一天开始

SET @endTime = GETDATE() --一直到当前时间


--准备创建表

--根据月份创建

DECLARE @mi INT

--(这里必须要是开始时间和结束时间在一年之内的情况,如果不是在一年以内则要另外考虑,懒得写)

SET @mi = MONTH(@endTime) - MONTH(@startTime) + 1 --用结束月份减去开始月份,得到总共要创建几个月份表(加上当前月份)

--PRINT @mi

WHILE @mi >0

BEGIN

DECLARE @tableName VARCHAR(6) --月份表名

DECLARE @sql NVARCHAR(1000)

SET @tableName = '2014'

IF @mi<10

BEGIN

SET @tableName = @tableName + '0'

END

SET @tableName = @tableName + CAST(@mi AS VARCHAR)

IF NOT EXISTS (SELECT * FROM sysobjects WHERE [name] = @tableName AND [type] = 'U')

BEGIN

--如果当前月份表不存在,创建当前月份表

SET @sql = 'CREATE TABLE '+@tableName + ' (MId INT PRIMARY KEY IDENTITY(1,1))'

PRINT @sql

--执行

--EXECUTE sp_executesql N@sql

END

DECLARE @dayName VARCHAR(8) --天表名

WHILE CONVERT(VARCHAR(6),@endTime,112)=@tableName --确定当前时间是否是当前月的

BEGIN

SET @sql = ''

SET @dayName = CONVERT(VARCHAR(8),@endTime,112)

SET @sql = 'INSERT INTO '+@tableName +' VALUES SELECT * FROM ' + @dayName

PRINT @sql

--执行

--EXECUTE sp_executesql N@sql

SET @sql = ''

SET @endTime = DATEADD(DAY,-1,@endTime)

END

SET @mi = @mi - 1 --月份减一

/*

------------------------------------------------------------

CREATE TABLE 201402 (MId INT PRIMARY KEY IDENTITY(1,1))

INSERT INTO 201402 VALUES SELECT * FROM 20140219

INSERT INTO 201402 VALUES SELECT * FROM 20140218

INSERT INTO 201402 VALUES SELECT * FROM 20140217

INSERT INTO 201402 VALUES SELECT * FROM 20140216

INSERT INTO 201402 VALUES SELECT * FROM 20140215

INSERT INTO 201402 VALUES SELECT * FROM 20140214

INSERT INTO 201402 VALUES SELECT * FROM 20140213

INSERT INTO 201402 VALUES SELECT * FROM 20140212

INSERT INTO 201402 VALUES SELECT * FROM 20140211

INSERT INTO 201402 VALUES SELECT * FROM 20140210

INSERT INTO 201402 VALUES SELECT * FROM 20140209

INSERT INTO 201402 VALUES SELECT * FROM 20140208

INSERT INTO 201402 VALUES SELECT * FROM 20140207

INSERT INTO 201402 VALUES SELECT * FROM 20140206

INSERT INTO 201402 VALUES SELECT * FROM 20140205

INSERT INTO 201402 VALUES SELECT * FROM 20140204

INSERT INTO 201402 VALUES SELECT * FROM 20140203

INSERT INTO 201402 VALUES SELECT * FROM 20140202

INSERT INTO 201402 VALUES SELECT * FROM 20140201

CREATE TABLE 201401 (MId INT PRIMARY KEY IDENTITY(1,1))

INSERT INTO 201401 VALUES SELECT * FROM 20140131

INSERT INTO 201401 VALUES SELECT * FROM 20140130

INSERT INTO 201401 VALUES SELECT * FROM 20140129

INSERT INTO 201401 VALUES SELECT * FROM 20140128

INSERT INTO 201401 VALUES SELECT * FROM 20140127

INSERT INTO 201401 VALUES SELECT * FROM 20140126

INSERT INTO 201401 VALUES SELECT * FROM 20140125

INSERT INTO 201401 VALUES SELECT * FROM 20140124

INSERT INTO 201401 VALUES SELECT * FROM 20140123

INSERT INTO 201401 VALUES SELECT * FROM 20140122

INSERT INTO 201401 VALUES SELECT * FROM 20140121

INSERT INTO 201401 VALUES SELECT * FROM 20140120

INSERT INTO 201401 VALUES SELECT * FROM 20140119

INSERT INTO 201401 VALUES SELECT * FROM 20140118

INSERT INTO 201401 VALUES SELECT * FROM 20140117

INSERT INTO 201401 VALUES SELECT * FROM 20140116

INSERT INTO 201401 VALUES SELECT * FROM 20140115

INSERT INTO 201401 VALUES SELECT * FROM 20140114

INSERT INTO 201401 VALUES SELECT * FROM 20140113

INSERT INTO 201401 VALUES SELECT * FROM 20140112

INSERT INTO 201401 VALUES SELECT * FROM 20140111

INSERT INTO 201401 VALUES SELECT * FROM 20140110

INSERT INTO 201401 VALUES SELECT * FROM 20140109

INSERT INTO 201401 VALUES SELECT * FROM 20140108

INSERT INTO 201401 VALUES SELECT * FROM 20140107

INSERT INTO 201401 VALUES SELECT * FROM 20140106

INSERT INTO 201401 VALUES SELECT * FROM 20140105

INSERT INTO 201401 VALUES SELECT * FROM 20140104

INSERT INTO 201401 VALUES SELECT * FROM 20140103

INSERT INTO 201401 VALUES SELECT * FROM 20140102

INSERT INTO 201401 VALUES SELECT * FROM 20140101



*/


3. sql多表格式相同汇总到一张表的语句

select A.id,A.name,sum(A.成绩)
from
(select * from 语文成绩表
union all
select * from 数学成绩表
union all
select * from 物理成绩表
) A
group by A.学号,A.姓名

UNION ALL的用途是将几个成绩表合并成为一个表A。然后按照A表的学号和姓名字段进行分组合计。

有不明白的再问我

4. ACCESS 多个表,合并到一个表中,应该怎样写SQL命令

首先,要多个表的表结构一致或者被选取的字段一致。

然后,用类似如下语句(以插入3个字段为例):

insertinto新表(字段1,字段2,字段3)
selectt.*from
(select字段1,字段2,字段3fromtable1
unionall
select字段1,字段2,字段3fromtable2
unionall
select字段1,字段2,字段3fromtable3)ast

5. sql server如何将多张表并成一张表,使用select into和union all语句

如果要用Union,必须保证合并的两个查询的字段能一一对应,
Select
into
也是一样,需要保证你要插入的表的字段和你的合并查询的结果字段要一致
比如:
select
field1,field2
into
newwway
from
(select
field1,field2
from
nw201201
union
all
select
field1,field2
from
nw201202)

6. sql两个表数据合并到一个新表

SQL 数据库中的两个表的数据合并到一个新表中,首先需要create一个新的表,然后根据数据表结构insert两个表的数据到新表中即可完成两个表数据合并到一个新表。

7. SQL 表如何两张表合并成一张 !!

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

SQL UNION 语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SQL UNION ALL 语法

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

8. SQL多张表如何合并成一张报表

select
a.*,b.*,c.*
from
table1
a,table2
b,table3
c
where
关联性
select
a.*,b.*,c.*
from
table1
a
join
table2
b
on
....
join
table3
c
on.....
省略的地方
自行补齐
每个表之间的联系

9. 多个sql文件如何合并成一个

我来回答,其实很简单的,分四步走: 一,先在SQL里创建两个数据库A和B。 二,还原数据库,用A.BAK还原到数据库A,用B.BAK还原到数据库B。(这个你会吧?) 三,数据导出,(也可以导入)。可以从A导出到B,也可以从B导出到A。 如果从A导出到B。选择数据库A,点右键,选所有任务>数据导出。出现一个新的窗口。选择数据源也就是数据库A,再选择导出的目的地,也就是数据库B。之后再选择第一个选项,(复制视图和表),再选择所有的表不要选视图。(那些有眼镜的不要选。)然后一直下一步直到完成。 四,备份数据库B,备份的数据库文件就等于你要的C.BAK。 以上四步,第三步最为关键,有几种方法。也有很多选项,可要看清楚哟。

10. 怎么把SQL多个表关联合并成一个表

用union all+group by。多少ID都没关系吧,除非你说的是有上千个表。。。

selectID,sum(qty1)qty1,sum(qty2)qty2,sum(qty3)qty3(
selectID,qty1,0qty2,0qty3from表1unionall
selectID,0qty1,qty2,0qty3from表2unionall
selectID,0qty1,0qty2,qty3from表3)ast1
groupbyID