【问题标题】:SQL JOIN 2 tables with similar data from a 3rd table with a viewSQL JOIN 2 个表,其中包含来自第 3 个表的相似数据和视图
【发布时间】:2019-01-16 17:16:17
【问题描述】:

我正在创建一个视图来显示父项中的子项(主单元的子组件) 我遇到的问题是当我尝试合并第三个表时,它从父表中获取 ID 并将相同的价格应用于每个字段。我有 3 张桌子:

商品

ID------------------CODE
167074             AB4112815(this is the parent item)  
51325              AB4XK103 (this is the child item)
12345              TEST

子商品

ITEM------------------CODE------------------QTY
167074                AB4XK103              2
12345                 TEST                  1

价格

PGOODSID------------------PRICE
167074                    23.67
51325                     0.03
12345                     0.01

PGOODS 保存所有零件信息,SUBGOODS 将子商品链接到主 SKU,PRICES 保存商品的成本。

我知道我可以从 SQL 语句中引用这些单元格中的每一个,但我希望将所有这些信息合并到一个视图中,以便更快地检索数据。请注意,这将是一次性交易。

CREATE VIEW [dbo].[BoM1]
        AS
    SELECT PGOODS.CODE AS CODE1,PGOODS.NAME AS NAME1
    ,PRICES.PG1 AS PRICE,SUBGOODS.ITEM,

    FROM PRICES
    LEFT OUTER JOIN SUBGOODS ON SUBGOODS.ITEM = PRICES.PGOODSID
    INNER JOIN PGOODS ON PGOODS.ID = SUBGOODS.ITEM
    GO

在这种情况下,我的最终目标是拥有这样的东西:

  PARENTCODE------------CODE------------------PRICE
  AB4112815                                    23.67
  AB4112815            AB4XK103                0.03
  AB4112815            TEST                    0.01

  AB4112816                                    27.67
  AB4112816            AB4XK103                0.03
  AB4112816            TEST                    0.01
  AB4112816            TEST2                   5.64

谢谢。

【问题讨论】:

  • PGOODS 似乎是 SUBGOODS 的子表的父表。但是,PGOODS 行列表似乎同时具有父项和子项/行。是这样吗?如果是这样,表格设计似乎有冲突。
  • 是的,不幸的是,我无法对表结构做任何事情,我从第 3 方供应商那里得到它,这是他们组织数据流的方式,想知道是否有可能当我们正在进行系统转换时,我在视图中排列数据。

标签: sql sql-server


【解决方案1】:
    CREATE VIEW [DBO].[BOM1]
AS
SELECT P.ID,P.CODE,PR.PRICES FROM DBO.PGOODS P
LEFT JOIN DBO.SUBGOODS   S ON P.ID = S.ITEM
INNER JOIN DBO.PRICES PR ON PR.PGOODSID = P.ID

【讨论】:

  • 此代码运行良好,谢谢,但是我们失去了父子关系,例如可能有一个 AB112815 附加了相同的子项。我认为这是我的错,我正在寻找的最终场景不够清楚,让我更新问题。
猜你喜欢
  • 1970-01-01
  • 2013-03-25
  • 2016-07-26
  • 1970-01-01
  • 2021-06-21
  • 1970-01-01
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
相关资源
最近更新 更多