Как исправить «В списке выбора может быть указано только одно выражение, если подзапрос не введен с EXISTS».ошибка с подстрокой - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь редактировать отчет, но при его выполнении я получаю следующую ошибку

Сообщение 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
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...