Объединение строк по одному признаку и присвоение одного значения для группы
Вопрос заключается в следующем: Есть запрос, который выводит группу строки и идентификатор товара.
select group, idgoods from docs as ds where iddoc = 123849 order by 1
Результат запроса
Необходимо, что бы если поле group было одинаковое с соседней строкой то поле idgoods принимало значение > 0 если таковое имеется.
Пример:
Как можно это реализовать по средствам SQL?
Ответы (1 шт):
Автор решения: Denis Rubashkin
→ Ссылка
SELECT
ds.[group],
ds.idgoods,
ISNULL(x.idgoods, 0) AS 'NewColumn'
FROM docs as ds
LEFT JOIN (
SELECT
d.[group],
MIN(d.idgoods) AS 'idgoods'
FROM docs d
WHERE d.iddoc = ds.iddoc
AND d.idgoods > 0
GROUP BY d.[group]
) x ON x.[group] = ds.[group]
WHERE ds.iddoc = 123849
ORDER BY ds.[group]

