#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 результаты, какими они должны быть