當前位置:首頁 » 編程語言 » 多表合並成一個表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