У меня есть 2 Select Statement, но мне нужно объединить оба результата и показать PRIMARY_MATERIAL
рядом с столбцом SECONDARY_MATERIAL
. В настоящее время я использую UNION, который отображает все в строках (около 300 строк), но мне действительно нужно всего 150 строк, и вместо этого нужно отображать их в дополнительных столбцах.Merge Select Statement в SQL
SELECT RM_Materials.MaterialCode MatCode,
RM_MRPAttributeDefinitions.ShortDescription ProcessArea,
RM_MRPAttributes.AttributeValue AttValue
FROM DMI_Manu32.dbo.RM_MRPAttributeDefinitions
INNER JOIN (DMI_Manu32.dbo.RM_Materials
INNER JOIN DMI_Manu32.dbo.RM_MRPAttributes
ON (RM_Materials.MaterialUID = RM_MRPAttributes.MaterialUID)
AND (RM_Materials.InternalVersionNo = RM_MRPAttributes.MaterialVersionNo))
ON RM_MRPAttributeDefinitions.MRPAttributeDefinitionsUID = RM_MRPAttributes.MRPAttributeDefinitionsUID
WHERE RM_Materials.ActiveTF = 1
AND RM_MRPAttributes.ActiveTF = 1
AND "RM_MRPAttributeDefinitions"."ActiveTF" = 1
AND "RM_Materials"."DeletedTF" = 0
AND "RM_MRPAttributeDefinitions"."ShortDescription" = N'PRIMARY_MATERIAL'
AND "RM_Materials".ActiveTF = 1
UNION
SELECT RM_Materials.MaterialCode MatCode,
RM_MRPAttributeDefinitions.ShortDescription ProcessArea,
RM_MRPAttributes.AttributeValue AttValue
FROM DMI_Manu32.dbo.RM_MRPAttributeDefinitions
INNER JOIN (DMI_Manu32.dbo.RM_Materials
INNER JOIN DMI_Manu32.dbo.RM_MRPAttributes
ON (RM_Materials.MaterialUID = RM_MRPAttributes.MaterialUID)
AND (RM_Materials.InternalVersionNo = RM_MRPAttributes.MaterialVersionNo))
ON RM_MRPAttributeDefinitions.MRPAttributeDefinitionsUID = RM_MRPAttributes.MRPAttributeDefinitionsUID
WHERE RM_Materials.ActiveTF = 1
AND RM_MRPAttributes.ActiveTF = 1
AND "RM_MRPAttributeDefinitions"."ActiveTF" = 1
AND "RM_Materials"."DeletedTF" = 0
AND "RM_MRPAttributeDefinitions"."ShortDescription" = N'SECONDARY_MATERIAL'
AND "RM_Materials".ActiveTF = 1
Есть ли у вас какие-либо дубликаты для удаления? В противном случае сделайте 'UNION ALL', чтобы получить все строки, быстрее. – jarlh
У меня нет дубликатов для удаления. К сожалению, использование UNION или UNION ALL возвращает все в строке. Мне нужна колонка, отображающая AttValue для PRIMARY_MATERIAL, а еще один столбец рядом с ней, показывающий AttValue для SECONDARY_MATERIAL, для каждого MatCode. – tomred1979