2012-02-29 3 views
0

У меня есть две таблицы SQLSQL Concat значения из второй таблицы в один столбец

Записи (EntryID, имя, дата)

запись файлов (FILEID, EntryID, имя файла, dateadded)

Im пытается написать хранимую процедуру, чтобы вернуть все из записей, а для каждой строки - конкатенированный список файлов для этой записи.

от чтения через переполнение стека Айв получил насколько это

SELECT *, 
     (
      SELECT f.FileName + ',' 
      FROM EntryFiles f 
      WHERE f.entryid = e.entryid 
      FOR XML PATH('') 
      ) AS Files 
FROM Entries e 

Im получать повторяющиеся строки для строк, которые имеют файлы, я знаю, что им делать что-то действительно глупое, но имеющий мозг мертвый момент. Приветствия

Для примера я получить

EntryID дата имя файла

1 entry1 01/01/2012 NULL

2 entry2 01/02/2012 file1, file2,

2 entry2 01/02/2012 file1, file2,

+0

выглядит хорошо для меня. Добавьте некоторые примеры данных, которые показывают, что у вас есть проблема. –

+0

Для примера I Get EntryID Дата Имя файла 1 entry1 01/01/2012 NULL 2 entry2 01/02/2012 file1, file2, 2 entry2 01/02/2012 file1, file2, – rs82uk

+1

У вас есть дубликат 'EntryID 'в таблице' Записи'? То, что у вас работает, отлично. Посмотрите здесь: http://data.stackexchange.com/stackoverflow/query/62758/new –

ответ

1

использовать отличное ключевое слово ... надеюсь, что это поможет u ..

1

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

SELECT *, 
     (
      SELECT f.FileName 
      FROM EntryFiles f 
      WHERE f.entryid = e.entryid 
      FOR XML PATH('') 
      ) AS Files 
FROM Entries e 
Смежные вопросы