SQL - 如何基于第一个

时间:2017-01-31 15:08:22

标签: sql sql-server

所以我有两个标签: Part_Stock Part_Vendor

第一项任务是查询 Part_Stock 以返回存储在特定库存位置( CON1C7C )的项目。返回该位置的项目后,我需要找到该表中的公司部件号,并查询 Part_Vendor ,以便我可以返回项目使用 Part_Stock 表中的公司部件号并将其与制造商部件号相匹配,它们都位于 Part_Vendor < / em>表。

目前我拥有它以便查询 Part_Stock 以获取公司的部件号,然后通过手动输入公司部件号查询 Part_Vendor

现在只有6个部分,所以它不是太糟糕,但最终列表将呈指数级增长。

有没有办法在不写出每个零件编号的情况下获得相同的结果?

我目前有:

enter image description here

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您要找的是JOIN

Select  V.*
From    Part_Stock                      S
Join    Exactmaximet.dbo.Part_Vendor    V   On  V.Prtnum_07 = S.Prtnum_07
Where   S.Stk_06 Like '%CON1C7C%'

注意:我假设您获得Part_Stock值的Prtnum_07列也命名为Prtnum_07

答案 1 :(得分:-1)

我假设第二个表位于不同的数据库中(因为use EXACTMAXIMET语句)
您可以创建一个表变量,使用PartNumber值填充它,然后使用此表为另一个选择创建一个条件。

DECLARE @t TABLE (PartNumber VARCHAR(255))

INSERT INTO @t (PartNumber)
SELECT PartNumber
FROM [Part_Stock]...

USE EXACTMAXIMET

SELECT *
FROM [Part_Vendor]
WHERE PRTNUM_07 IN (
        SELECT PartNumber
        FROM @t
        )