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

Откуда:
Сообщений: 44
В приложенном файле схема нужного результата.

К сообщению приложен файл. Размер - 85Kb
1 июл 12, 15:41    [12800582]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пивот с несколькими колонками...  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Выбираете систему отчетности и там рисуете ваш пивот.
1 июл 12, 15:53    [12800593]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пивот с несколькими колонками...  [new]
Vugar_Miri
Member

Откуда:
Сообщений: 44
Гавриленко Сергей Алексеевич,

Дело в том, что прежде чем представлять конечному пользователю отчет нужно еще провести кое-какие вычисленияб только потом представлять. Более того конечная форма должна быть интерактивной т.к. пользователь должен иметь возможность менять данные, которых нет в данном скопе, но которые зависят от них.
1 июл 12, 16:00    [12800603]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пивот с несколькими колонками...  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Vugar_Miri
Гавриленко Сергей Алексеевич,

Дело в том, что прежде чем представлять конечному пользователю отчет нужно еще провести кое-какие вычисленияб только потом представлять. Более того конечная форма должна быть интерактивной т.к. пользователь должен иметь возможность менять данные, которых нет в данном скопе, но которые зависят от них.
А при чем тут сервер? Он никаких форм пользователю на десктопе рисовать не умеет.
1 июл 12, 16:04    [12800608]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пивот с несколькими колонками...  [new]
Vugar_Miri
Member

Откуда:
Сообщений: 44
Гавриленко Сергей Алексеевич,

Вы же сами предлагали "там рисуете ваш пивот"?
1 июл 12, 16:18    [12800627]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пивот с несколькими колонками...  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Vugar_Miri
Гавриленко Сергей Алексеевич,

Вы же сами предлагали "там рисуете ваш пивот"?
Вы только половину предложения прочитали? А как же "выбираете систему отчетности"? Они тоже к серверу не имеют отношения.
1 июл 12, 16:24    [12800636]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пивот с несколькими колонками...  [new]
thugtronik
Member

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

Система отчетности сама разворачивает плоский набор данных. И в отличии от сервера, умеет разворачивать более одного набора в полях значений, а на стороне сервера это сделать можно только объединением набора пивотов.
 SELECT * INTO #temp FROM
 (SELECT 'Good1' AS good, 'Org1' AS Organisation, 
12 AS sold, 31 AS speed UNION ALL
SELECT 'Good1' AS good, 'Org2' AS Organisation, 
13 AS sold, 32 AS speed UNION ALL 
SELECT 'Good2' AS good, 'Org1' AS Organisation, 
14 AS sold, 34 AS speed UNION ALL
SELECT 'Good2' AS good, 'Org2' AS Organisation, 
15 AS sold, 35 AS speed  
 ) 
 temp 
 
 SELECT sld.good,
        sld.sold_org1,
        spd.speed_org1,
        sld.sold_org2,
        spd.speed_org2
 FROM   (
            SELECT good,
                   org1 AS [sold_org1],
                   org2 AS [sold_org2]
            FROM   (
                       SELECT good,
                              sold,
                              Organisation
                       FROM   #temp
                   ) to_pvt
                   PIVOT(MAX(sold) FOR Organisation IN ([Org1], [Org2])) pvt
        ) sld
        JOIN (
                 SELECT good,
                        org1 AS [speed_org1],
                        org2 AS [speed_org2]
                 FROM   (
                            SELECT good,
                                   speed,
                                   Organisation
                            FROM   #temp
                        ) to_pvt
                        PIVOT(MAX(speed) FOR Organisation IN ([Org1], [Org2])) 
                        pvt
             ) spd
             ON  sld.good = spd.good
 
 
 
 
 
1 июл 12, 16:28    [12800643]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пивот с несколькими колонками...  [new]
AnaceH
Member

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

Если правильно понял, это поможет Вам
2 июл 12, 10:58    [12802588]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пивот с несколькими колонками...  [new]
ssrs
Guest
оба варианта ему не помогут, т.к.
"конечная форма должна быть интерактивной т.к. пользователь должен иметь возможность менять данные, которых нет в данном скопе, но которые зависят от них"
варианты кода выше -- статические, если пользователь добавит пару организаций -- переписывай весь код.
или динамику пишите,
или, как Вам сразу написали, используйте систему отчетности.
вот пример Reporting Services.
разработка (просто помещаем organization в matrix):

К сообщению приложен файл. Размер - 14Kb
2 июл 12, 11:58    [12802955]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пивот с несколькими колонками...  [new]
ssrs
Guest
результат:

К сообщению приложен файл. Размер - 21Kb
2 июл 12, 11:59    [12802962]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить