[英]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
這一行:
成為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.