Я пытаюсь редактировать отчет, но при его выполнении я получаю следующую ошибку
Сообщение 116, Уровень 16, Состояние 1, Строка 55 В списке выбора можно указать только одно выражение, когдаподзапрос не введен с EXISTS.
Я изменил код, чтобы удалить дублирующиеся данные, но не могу избавиться от этой ошибки.
Вот новый код, который я написал
,ProductSizesAll as(SELECT distinct
ps.[PRODUCT_ID]
,s.SIZE_NAME
,ps.SIZE_ID
,s.SEQUENCE
,ps.RATIO
,ps.SKU_CODE
FROM [dbo].[PRODUCT_COLOUR_SIZES] ps with (NOLOCK)
inner join dbo.SIZE s on s.SIZE_ID=ps.SIZE_ID)
,ProductSizeList as (
Select distinct PRODUCT_ID
,(select P2.Size_ID,
substring(
(
Select ','+P1.Size_name as [data()]
from ProductSizesAll p1
where P1.SIZE_ID = P2.SIZE_ID
ORDER by P1.size_id
for xml path ('')
)
, 1, 2
) [Sizes]
from Productsizesall p2 )
,(select p2.size_id,
substring(
(
select ':'+cast(p1.ratio as varchar) as [data()]
from productsizesall p1
where p1.SIZE_ID = p2.size_id
order by p1.SIZE_ID
for xml path ('')
)
,1, 2
) [Ratio]
from ProductSizesAll p2 )
,(select top 1 SKU_CODE FROM ProductSizesAll p3 where
p3.PRODUCT_ID=p1.PRODUCT_ID order by p3.SEQUENCE) as SKU_CODE_
from ProductSizesAll p1
)
В настоящее время редактируемый мной отчет возвращает заданное значение размера и соотношение следующим образом:
size1,размер1, размер2, размер2
коэффициент1, коэффициент1, коэффициент2, коэффициент2
Я пытаюсь изменить это, чтобы он возвращался в следующем формате
Размер1, Размер2
Ratio1: Ratio2
Текущий код, который возвращает его неверно:
,ProductSizesAll as(SELECT distinct
ps.[PRODUCT_ID]
,s.SIZE_NAME
,ps.SIZE_ID
,s.SEQUENCE
,ps.RATIO
,ps.SKU_CODE
FROM [dbo].[PRODUCT_COLOUR_SIZES] ps with (NOLOCK)
inner join dbo.SIZE s on s.SIZE_ID=ps.SIZE_ID)
,ProductSizeList as (
select distinct [PRODUCT_ID]
,stuff(
REPLACE((
SELECT '#!' + p2.SIZE_NAME as 'data()'
FROM
ProductSizesAll p2 where p1.PRODUCT_ID=p2.PRODUCT_ID
order by p2.SEQUENCE
FOR XML PATH('')),' #!',', '), 1, 2, '') AS [Sizes]
,stuff(
REPLACE((
SELECT '#!' + cast(p2.RATIO as varchar) as 'data()'
FROM
ProductSizesAll p2 where p1.PRODUCT_ID=p2.PRODUCT_ID
order by p2.SEQUENCE
FOR XML PATH('')),' #!',', '), 1, 2, '') AS [Ratio]
,(select top 1 SKU_CODE FROM ProductSizesAll p3 where
p3.PRODUCT_ID=p1.PRODUCT_ID order by p3.SEQUENCE) as SKU_CODE_
from ProductSizesAll p1
)