Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Значения столбца в разные поля  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Добрый день!
Подскажите, как сделать следующее. Есть таблица T
DesignationCustomer
Tovar1Org1
Tovar1Org2
Tovar1Org3
Tovar1Org4
Tovar1Org5
Tovar2Org6
Tovar2Org7
Tovar2Org8
Tovar2Org9
Tovar3Org10
Tovar3Org2

Необходимо получить результат по каждому товару, какие первые 5 организаций его покупали(ограничение- 5 столбцов). Т.е:
DesignationCustomer1Customer2Customer3Customer4Customer5
Tovar1Org1Org2Org3Org4Org5
Tovar2Org6Org7Org8 Org9
Tovar3Org10Org2

Значения не нужно "скручивать" в один столбец, а поместить в столбцы по порядку(Customer1 Customer2 Customer3 Customer4 Customer5).
Спасибо.
9 мар 17, 12:45    [20277112]     Ответить | Цитировать Сообщить модератору
 Re: Значения столбца в разные поля  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21194
SELECT tt.Designation,tt.Customer, tt.rr
FROM (
SELECT Designation, Customer, ROW_NUMBER() OVER (PARTITION BY Designation) rr
FROM t
) tt
WHERE tt.rr < 6
и дальше PIVOT (лень писАть).
9 мар 17, 12:49    [20277140]     Ответить | Цитировать Сообщить модератору
 Re: Значения столбца в разные поля  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21194
Lexx_SQL
какие первые 5 организаций

Показанная таблица не позволяет узнать, какие первее, а какие вторее... должна быть какая-нибудь дата или ещё что... и соотв. ORDER BY в параметрах оконной функции.
9 мар 17, 12:50    [20277148]     Ответить | Цитировать Сообщить модератору
 Re: Значения столбца в разные поля  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Akina,

сортировка не так важна (возможно нужно ограничение<6). Важно, чтобы они по порядку заносились в 1-е,2-е.... и т.д. поле.
Есть одна тонкость: полей таких как Customer (которые нужно вносить) несколько, например еще поле [Количество], и оно должно идти в таком же порядке как организация в Customer.
Поэтому PIVOT вряд ли подойдет.
В начале этого не написал, т.к. думал обойтись простым примером.
9 мар 17, 13:07    [20277248]     Ответить | Цитировать Сообщить модератору
 Re: Значения столбца в разные поля  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Akina,
Что-то примерно такое:
DesignationCustomerQty
Tovar1Org12
Tovar1Org24
Tovar1Org31
Tovar1Org43
Tovar1Org59
Tovar2Org65
Tovar2Org73
Tovar2Org82
Tovar2Org91
Tovar3Org101

DesignationCustomer1Customer2Customer3Customer4Customer5Qty1Qty2Qty3Qty4Qty5
Tovar1Org1Org2Org3Org4Org524139
Tovar2Org6Org7Org8Org95321
Tovar3Org1011
9 мар 17, 13:12    [20277277]     Ответить | Цитировать Сообщить модератору
 Re: Значения столбца в разные поля  [new]
Добрый Э - Эх
Guest
Lexx_SQL
Поэтому PIVOT вряд ли подойдет.
когда не было пивота его делали через CASE...
поэтому основная идея остается прежней - перенумеровать записи в разрезе товара и раскидать по разным колонкам при помощи CASE
9 мар 17, 13:17    [20277303]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить