Преобразование в таблицу, связанную с BI - PullRequest
2 голосов
/ 24 марта 2012

Текущая ситуация

date    (nvarchar(9)) 
sku     (nvarchar(5))
smith   (decimal)
jones   (decimal)
jonson  (decimal)
nguyen  (decimal)



date          sku    smith     jones     johnson     nguyen
-----------------------------------------------------------
11/4/2007   X2271     2404   9055,33     7055,22          0
11/4/2007   B1112   108,99         0      244,92    1001.01

Запрошенный результат:

date          sku     salesperson    sales
------------------------------------------
11/4/2007   X2271     Smith           2404
11/4/2007   X2271     Jones        9055,33
11/4/2007   X2271     Johnson      7055,22
11/4/2007   B1112     Smith         108,99
11/4/2007   B1112     Johnson       244,92
11/4/2007   B1112     Nguyen       1001,01

Нужна помощь, чтобы решить эту проблему. Эта задача связана с задачей BI.

1 Ответ

2 голосов
/ 24 марта 2012

Для этого можно использовать команду UNPIVOT.

SELECT
    date,
    sku,
    salesperson,
    sales
FROM (
    SELECT
        date,
        sku,   
        smith,
        jones,
        johnson,
        nguyen
    FROM
        YourTable
) q
UNPIVOT
(sales FOR salesperson in (smith, jones, johnson, nguyen)) AS YourUnpivot
...