iT邦幫忙

0

使用SQL Server2017 將4個table合併與儲存

目前需要將4個TABLE合併

(1)
Table1 : COM_A的欄位只需要 FMNO, IRT標籤,IRT標籤 與 COM_B IRT欄位內容相同
Table2 : COM_A1的欄位 IRT(與COM_A相同), MTLVL, TTIME, FTIME, NUMBER, NUMBER2, Type, QQ, YY,RRRR 都需要
Table3 : COM_B的欄位 FMNO, EXDR, EYTYTR
Table4 : COM_C的欄位 FMNO, EXD, E

測試檔案

Table1 : COM_A

Table2 : COM_A1

Table3 : COM_B

Table4 : COM_C

最後4個Table合併結果是

目前使用SQL Server2017 將4個table合併
使用語法:
select * from (COM_A inner join COM_B on COM_B.FMNO = COM_A.FMNO) inner join COM_C.FMNO on COM_A.FMNO
目前合併3個table只將欄位都讀取出,但不是需要的結果

(2) 另外要如何將搜索出來的資料另儲存為execl CSV檔案
謝謝

COM_D?在哪?
什麼是你需要的結果?
內容以更正
COM_A, COM_A1, COM_B, COM_C
0
carollai
iT邦新手 5 級 ‧ 2019-08-09 22:56:38
最佳解答

COM_A1內容與COM_A相同,所以僅需要合併COM_A、COM_B及COM_C即可得到所需資料。

SELECT a.[FMNO]
      ,a.[IRT標籤] as [IRT]
      ,a.[MTLVL]
      ,a.[TTIME]
      ,a.[FTIME]
      ,a.[NUMBER]
      ,a.[NUMBER2]
      ,a.[Type]
      ,a.[QQ]
      ,a.[YY]
      ,a.[RRRR]
	  ,b.[EXDR]
	  ,b.[EYTYTR]
	  ,c.[EXD]
	  ,c.[E]
  FROM [COM_A] as a
  inner join [COM_B] as b on a.[FMNO]=b.[FMNO]
  inner join [COM_C] as c on a.[FMNO]=c.[FMNO]

MSSQL執行後的結果,可以按右鍵選擇「儲存結果」,儲存成CSV。(但沒有標頭)
https://ithelp.ithome.com.tw/upload/images/20190809/200337293oQ6bH6Xgr.jpg

MSSQL執行後的結果,可以按右鍵選擇「隨標頭一同複製」,再貼到Excel,另存成CSV。
https://ithelp.ithome.com.tw/upload/images/20190809/200337293tDbOb17Lt.jpg

感謝

0
anniecat
iT邦新手 3 級 ‧ 2019-08-06 11:46:49

你的資料合併的意思應該是指資料是一樣的前提下,只要select出一個?
我不太清楚你想要的結果是什麼,但如果你要特定欄位,可以這樣寫 :

select 
    a.FMNO
    , a.IRT
from 
    COM_A a 
    inner join COM_B b
        on b.FMNO = a.FMNO

備註 : inner join的查詢只會找出符合條件的資料

另外,搜索出來的資料另儲存為execl CSV檔案,SQL Server有提供匯入和匯出精靈,網路上可以找到方法,或直接複製你的結果資料貼到execl上也可行,只是要調整欄位格式等等的。

不知道以上有沒有解答你問題

了解

0
richardsuma
iT邦大師 1 級 ‧ 2019-08-08 14:50:30

想要的結果是這樣嗎?
6212 F0052 01-jan-15 ...
6212 F0052 14-jan-15 ...
6212 F0052 11-jan-15 ...

Table1 : COM_A
Table2 : COM_A1
Table3 : COM_B
Table4 : COM_C
相同的列欄位合併

我要發表回答

立即登入回答