Как правильно использовать команды stuff?

#sql-server

#sql-server

Вопрос:

я читал некоторые документы о команде STUFF, но когда я пытаюсь объединить некоторые результаты только в одной строке с помощью команды STUFF, это работает не так, как я ожидал, что я делаю не так?

 select 
    u.COD_UNIDADE_VENDA,
    u.NOM_UNIDADE_VENDA,

    STUFF((SELECT '; '   DSC_PRODUTO
    FROM PRODUTO PRO WHERE P.COD_PRODUTO = PRO.COD_PRODUTO 
    order by DSC_PRODUTO
    FOR XML PATH('')), 1, 1, '') 
    [Produtos]

from UNIDADE_VENDA u
join PRECO p 
    on u.COD_UNIDADE_VENDA = p.COD_UNIDADE_VENDA
join PRODUTO PRO
    on p.COD_PRODUTO = pro.COD_PRODUTO

    where DAT_FINAL_VIGENCIA > '2016-10-01 00:00:00.000'
  --group by u.NOM_UNIDADE_VENDA
    order by u.COD_UNIDADE_VENDA asc
  

Результаты поступают следующим образом для столбца Produtos: product1 n product2 n product3 … вместо p13, p45, p20…

Комментарии:

1. Из того, что вы опубликовали, невозможно дать ответ. Это происходит потому, что вы не предоставили достаточно информации. Вот отличное место для начала. spaghettidba.com/2015/04/24 /…

2. Что вы подразумеваете под «только в одном ряду»? Это коррелированный подзапрос. И вы просто хотите удалить первый символ?

3. Каков ваш ввод и ожидаемый результат?

4. Здравствуйте, извините. я был немного занят в тот момент, я пытаюсь сказать, что запрос приносит мне результат следующим образом: revendor1 l продукт 1 revendor1 l продукт 2 revendor1 l продукт 3 revendor2 l продукт 2 revendor2 l продукт 4 Вместо этого я хочу, чтобы запрос принес мне результаттаким образом: revendor1 l product1, product2, product3 revendor2 l product2, product4 revendor3 l product1, product3, product4 Извините за отсутствие информации, которую я предоставил ранее! и спасибо за ответы, я впервые использую stackoverflow 🙂

5. i.stack.imgur.com/iOQNk.png результаты, какими они должны быть