我是新来的。 我已经完成了很多搜索,现有帖子已经回答了很多问题。 我认为我现在已经达到了真正的复杂性,因为我不再那么容易找到答案了。
我将尽可能简单地解释我的情况。
所以我有一个主物品代码表:
item
E01
E02
E03
E04
与主项目代码相关的子项目代码表(这可以捕获变化/大小) 它是与Master Item代码的一对多关系:
item subItem
E02 E02_S
E02 E02_M
E02 E02_L
E03 E03A
E03 E03B
E03 E03C
E04 E04A_S
E04 E04A_M
E04 E04B_L
E04 E04B_XL
请注意,E01没有subItem,因为它不包含任何变体。
我执行了一个查询,在两个表之间使用连接来包含所有项和子项:
SELECT master.item, [Size List].subItem
FROM master Left JOIN [Size List] ON master.[item] = [Size List].[item];
item subItem
E01
E02 E02_S
E02 E02_M
E02 E02_L
E03 E03A
E03 E03B
E03 E03C
E04 E04A_S
E04 E04A_M
E04 E04B_L
E04 E04B_XL
列表符合预期,每个子项和主项占据一行。请注意,E02,E03和E04 plain在其子项可用时不占用一行,而E01占用一行,因为不存在变化。
如何更新此查询以将master和sub合并到一个字段,以便它们仍然按照连接的方式占用每一行?一般来说,我正在尝试创建一个唯一项目列表,其中子项目作为唯一项目替换其相关的主要级别。
* combinedItemList
E01
E02_S
E02_M
E02_L
E03A
E03B
E03C
E04A_S
E04A_M
E04B_L
E04B_XL
非常感谢任何帮助或见解。谢谢!
答案 0 :(得分:0)
第一个语句获取所有没有子项的项目。
第二个语句获取项目值存在的所有子项并将它们组合在一起。
select DISTINCT master.item
from master
left join [Size List]
master.[item] = [Size List].[item]
where [Size List].subItem is null
UNION
SELECT DISTINCT [Size List].subitem
FROM [Size List]
答案 1 :(得分:0)
谢谢!我编辑了你提供给以下代码,但我知道你得到了什么!我不知道工会可以轻松合并两个不同的领域。
select DISTINCT master.item
from master
left join [Size List]
On master.[item] = [Size List].[item]
Where [Size List].subItem is null
Union
SELECT DISTINCT [Size List].subitem
FROM [Size List]