Из исходной таблицы в сумарную (MS-SQL2005)

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
a_mayor
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 02.06.2005 (Чт) 21:44

Из исходной таблицы в сумарную (MS-SQL2005)

Сообщение a_mayor » 08.12.2008 (Пн) 21:42

Доброе время суток.
Помогите пожалуйста выпольнить SQL запрос, чтобы из иcходной таблицы получить суммарную таблицу:

Код: Выделить всё
Исходная таблица (наименование языков заранее неизвестно, месяцев может быть использовано 12):
  Lang     Start       End       Duration
-------------------------------------------
VB       1-jan-08    3-jan-08    3 days
VB       3-jan-08    7-jan-08    5 days
C#       2-feb-08    5-feb-08    4 days
JS       11-jan-08   20-jan-08   10 days
VB       20-feb-08   25-feb-08   6 days
C#       17-jan-08   20-jan-08   4 days
JS       20-jan-08   25-jan-08   6 days
...
...
...

Суммарная таблица (для Duration):
  Lang     Jan08    Feb08
---------------------------
VB         8 days   6 days
JS         16 days  0 days
C#         4 days   4 days


Как это выполнить на MS-SQL2005?
Или как называется вид этой операции, чтобы искать в интернете?
Заранее благодарен.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Из исходной таблицы в сумарную (MS-SQL2005)

Сообщение alibek » 08.12.2008 (Пн) 22:07

Как-то так:
select Lang, convert(nvarchar(7),Start,121), sum(Duration)
from <data>
group by Lang, convert(nvarchar(7),Start,121)


Называется "группировка".
Lasciate ogni speranza, voi ch'entrate.

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Re: Из исходной таблицы в сумарную (MS-SQL2005)

Сообщение HandKot » 09.12.2008 (Вт) 8:19

здесь, насколько я понял, надо еще для каждого месяца создавать свой столбец
поэтому плюс к тому, что сказал alibek и MS SQL 2005 надо использовать PIVOT
I Have Nine Lives You Have One Only
THINK!

a_mayor
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 02.06.2005 (Чт) 21:44

Re: Из исходной таблицы в сумарную (MS-SQL2005)

Сообщение a_mayor » 09.12.2008 (Вт) 9:39

HandKot писал(а):здесь, насколько я понял, надо еще для каждого месяца создавать свой столбец
поэтому плюс к тому, что сказал alibek и MS SQL 2005 надо использовать PIVOT

Совершенно верное замечание. Нужны новые столбцы.
Насчёт Пивот... я так понимаю, надо взять запрос, который предложил alibek и запустить Пивот на это запрос.
Но как?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Из исходной таблицы в сумарную (MS-SQL2005)

Сообщение alibek » 09.12.2008 (Вт) 10:04

Я бы советовал делать обработку на клиенте.
Но если хочется сводную таблицу, то тогда искать в BOL примеры по PIVOT/UNPIVOT.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 114

    TopList