Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So geben Sie 1 einzelne Zeilendaten aus 2 verschiedenen Tabellen mit dynamischem Inhalt in SQL zurück

Wenn Sie hier nachsehen:http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

Dafür gibt es mehrere Techniken.

Angepasst an Ihre Situation, hier ist eine, die einfach aussieht:

    select batch_no, LEFT(booksauthors, len(booksauthors)-1) as Authors from 
(SELECT ba.Batch_no,

      ( SELECT cast(ba1.Author_no as varchar(10)) + ','

           FROM Book_Authors ba1

          WHERE ba1.Batch_no = ba.Batch_no

          ORDER BY Author_no

            FOR XML PATH('') ) AS BooksAuthors

      FROM Book_Authors ba

      GROUP BY Batch_no )A;