У меня есть главная таблица, которая имеет одну строку на ключ и таблицу подробностей, которая имеет много строк на ключ с полем последовательности, которое имеет описание поле Мне нужно объединить вместе и создать одну строку на ключ. Мой код делает это отлично, но строка данных данных не содержит конкатенированных данных в правильном порядке. Данные передаются мне в электронной таблице Excel, и я использую мастер импорта для добавления данных в базу данных. Так как порядок неверен в подробных данных, я добавил дополнительный выбор для сортировки данных по ключевому и порядковому номерам, которые являются входными данными в STUFF WITH XML PATH. Я все еще получаю данные в неправильном порядке. Если я сначала сортирую данные в электронной таблице, а затем загружаю их в базу данных, он отлично работает. Мне действительно нужно, чтобы это работало динамично, так как я хочу распространять это для своей команды, и мы можем использовать его для разных таблиц. Любые идеи о том, почему суб-выбор с помощью STUFF FOR XML PATH не работает? Как я могу делать то, что мне нужно?Как получить SQL-запрос с объединением и использовать STUFF и FOR XML PATH правильно отсортированы
Вот код, у меня есть:
SELECT pic, pisc, piin
, STUFF((SELECT ' ' + P.PIIDTA FROM PI115AP P
Where P.PIC =B.PIC
and P.PISC = B.PISC
and P.PIIN = B.PIIN FOR XML PATH(''), type
).value('.', 'nvarchar(max)'),1,1,'') As CombinedDetail
From
(select TOP 100 PERCENT
pic, pisc, piin, piisn, piidta
from PI115AP
order by pic, pisc, piin, piisn) B
Group By B.PIC, B.pisc, B.piin
Спасибо!
Не могли бы вы показать, что ваш запрос дает вам в настоящее время и каков ваш ожидаемый результат. – TheGameiswar
# TheGameiswar - проблема возникает, когда между последовательными строками находятся строки. Подробные данные составляют более 15 000 строк, а I и – Cass
Извините #TheGameiswar - Проблема возникает только при наличии строк между последовательными строками. Например, у меня может быть 200 072 00002 1 PERM. НАЖМИТЕ; 7 НЕОБХОДИМАЯ КНОПКА e01 006 00003 1 НЕКОТОРЫЙ ТЕКСТ еще строки ... 200 072 00002 2 FRONT; ДВЕ КАРМАНТЫ, ОДИН ЛОЖЬ И Другие строки Комбинированные данные будут иметь seq 3, seq1, seq5, упорядоченные таким образом. Результат должен состоять из 1 данных, данных seq2 и т. Д. У меня ограниченное пространство для добавления комментария, поэтому я сконцентрировался на этом, я думаю, это имеет смысл. – Cass