/ / Кілька рядків результатів в єдиний рядок - sql, sql-server

Кілька рядків результатів у єдину рядок - sql, sql-сервер

У мене є 4 таблиці: Магазини, термінали, термінали магазинів і адреса. Насправді, у кожному магазині є кілька терміналів, але лише одна адреса, тому я намагаюся отримати результати, які в основному показують один магазин на рядок з декількома терміналами і єдиною адресою. :(

Записи в таблиці StoreTerminals просто мають StoreID і TerminalID, тому, якщо Store має більше одного TerminalId, то існує кілька записів.

Я побачив ще одне питання, де групується конкатенаціянаблизився до того, що я хотів, але це залишило б результати для декількох терміналів в тому ж стовпці, який я не хочу. Мені потрібен кожний термінал, щоб бути в його власній колонці.

Хто-небудь знає, як це зробити?

Відповіді:

1 для відповіді № 1

Ви повинні подивитися на функцію pivot на сервері SQL. Це має дозволити отримати один стовпчик для одного терміналу.

http://blogs.msdn.com/b/spike/archive/2009/03/03/pivot-tables-in-sql-server-a-simple-sample.aspx


1 для відповіді № 2

Мені здається, вам потрібно повернути дані.

Ідентифікатор магазину, адреса магазину, ідентифікатор терміналу 1, ідентифікатор терміналу 2

Ось посилання на команду pivot. Він перетворює рядки на стовпці. Команда unpivot є зворотною.

http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx