簡體   English   中英

將 3 個不同表中的相關數據插入到一個表中 - 在 SQL Server 中

[英]Inserting related data from 3 different tables into one - in SQL Server

我認為我的問題相當具體,所以如果我需要提供更多信息,請告訴我。

我有 5 個不同的表,其中 4 個包含一些現有數據,一個 5. 需要來自其他 4 個的數據。

這些表的結構如下:

BK-數據:

 - BK_ID
 - Supplier 1
 - Supplier 1 order no
 - Supplier 1 datasheet
 - Supplier 1 lead free /yes/no)
 - Supplier 2
 - ...

供應商:

 - Supplier_ID (identity)
 - Name

成分:

 - BK_ID (PK)

數據表:

 - Datasheet_ID (identity)
 - Datasheet

組件供應商:

 - Supplier_ID (Joint PK, FK from **Suppliers**)
 - BK_ID (Joint PK, FK from **Components**)
 - Order_ID
 - Datasheet_ID (FK from **Datasheets**)
 - Preferred (yes/no)

BK-DATA來自一個數據庫,而其余四個表在另一個數據庫中。

現在,我想用其他表中存在的數據填充表ComponentSupplier

一個例子可能是來自BK-DATA這一行:

BK-DATA行

成為ComponentSupplier的以下幾行:

組件供應商行

其中供應商 1 將是給定組件的首選供應商。

但是,我該怎么做呢? SQL Server 不知道BK_ID = x的組件有供應商 1 = y供應商 2 = z

我在使用INSERT時曾想過使用條件語句,但由於唯一知道供應商、組件等之間關系的表在一張表中,我不知所措。

你能提供一些幫助或建議嗎?

我想出了這個代碼,它適用於添加一個供應商:

insert into CDB2020.dbo.ComponentSupplier
(
    Supplier_ID,
    BK_ID,
    Part_ID,
    Datasheet,
    LF,
    Preferred
)
select s.Supplier_ID, c.BK_ID, a.[Supplier 1 order no], a.[PDF Data 1 sheet link], a.[Supplier 1 LF], '1'
from  AccessDataMigration_1.dbo.[B-K Data] as a
inner join CDB2020.dbo.Components as c on c.BK_ID = a.[B-K no]
inner join CDB2020.dbo.Suppliers as s on s.Name = a.[Supplier 1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM