首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server根据两个表中的列在第三个表中创建行

SQL Server根据两个表中的列在第三个表中创建行
EN

Stack Overflow用户
提问于 2018-03-23 01:06:57
回答 3查看 41关注 0票数 0

我是SQL Server新手。我正在尝试创建测试数据。

我有一个包含10,000个部件号(Table1)的表。

我有另一个包含仓库的表(Table2)。

我有第三个表(Table3),它将为每个部件号/仓库组合包含一行。

Table1将包含部件号,Table2将包含6个仓库,表3将为每个部件号/仓库占一行。这意味着我在Table3中将有60,000行数据。我已经看过了所有的连接,但似乎找不到一个可以做这项工作的。我想要做的是在一个名为On_Hand的列中使用起始值为100的所有零件号/仓库行加载Table3。谢谢你的帮助。

EN

回答 3

Stack Overflow用户

发布于 2018-03-23 01:28:30

代码语言:javascript
复制
INSERT INTO TABLE_3 ( Part_No, Location)    
SELECT Part_No, Location from InventoryTable CROSS JOIN LocationTable WHERE
       order by Part_No
票数 1
EN

Stack Overflow用户

发布于 2018-03-23 01:38:00

生成一些数据:

代码语言:javascript
复制
DECLARE @partNumbers TABLE
(
    PartNumber INT
)

DECLARE @warehouses TABLE
(
    Warehouse VARCHAR(20)
)

DECLARE @partNumberStart INT = 100

-- partnumbers 10000 starting at @partNumberStart  -- for testing.
 INSERT INTO @partNumbers
        SELECT @partNumberStart + ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS ID FROM
       (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) x1(x),
       (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) x2(x),
       (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) x3(x),
       (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) x4(x)

--Warehouses 6 generated for testing
INSERT INTO @warehouses
        SELECT x1.x + CAST(ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS VARCHAR(20)) AS ID FROM
       (VALUES('Warehouse ')) x1(x),
       (VALUES(0),(1),(2),(3),(4),(5)) x2(x) --6
       --(VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) x2(x), --10

查询数据:

代码语言:javascript
复制
SELECT * FROM @warehouses LEFT JOIN @partNumbers on 1=1

--OR
SELECT * FROM @warehouses CROSS JOIN @partNumbers

--OR
SELECT * FROM @warehouses, @partNumbers
票数 0
EN

Stack Overflow用户

发布于 2018-03-23 02:37:33

您需要使用cross join,如下所示:

代码语言:javascript
复制
insert into inventory (part_no, warehouse_id, on_hand)  -- table_3
    select p.Part_No, w.warehouse_id, 500
    from Parts it cross join  -- table_1
         Warehouses w;        -- table_2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49434522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档