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

Откуда:
Сообщений: 7
Добрый день.

Имеется задача запросом получить сумму значений и побитовое ИЛИ полей типа int сгруппированных по времени.

Таблица:
CREATE TABLE [dbo].[DATA](
	[OBJECT] [int] NOT NULL 
	[VALUE] [float] NULL,
	[DATA_DATE] [datetime] NULL,
	[STATUS] [int] NULL,
) 
К примеру имеем значения

100, 1.1, 2011-07-01 10:00:00, 244
100, 1.2, 2011-07-01 10:10:00, 244
100, 1.3, 2011-07-01 10:30:00, 1
100, 2.0, 2011-07-01 11:10:00, 0
...

Пока, что получилось, это сформировать запрос для суммирования с группировкой по времени (в данном случае - час):
select d.object, sum(d.value), datediff(hh, '2011-01-01', data_date)
from data d
group by d.object, datediff(hh, '2011-01-01', data_date)
Получаем результат:
100, 3.6, <значение datediff(hh, '2011-01-01', data_date)>
100, 2.0, <значение datediff(hh, '2011-01-01', data_date)>

Но требуется также получить кроме суммы побитовое сложение столбца STATUS, т.е. была бы агрегативная функция BITWISE_OR, запрос выглядел бы следующим образом:
select d.object, sum(d.value), betwise_or(d.status), datediff(hh, '2011-01-01', data_date)
from data d
group by d.object, datediff(hh, '2011-01-01', data_date)
Необходим результат:
100, 3.6, 245, <значение datediff(hh, '2011-01-01', data_date)>
100, 2.0, 0, <значение datediff(hh, '2011-01-01', data_date)>

У кого какие соображения как можно выполнить битовую операцию в подобной постановке задачи?
21 ноя 11, 15:41    [11632673]     Ответить | Цитировать Сообщить модератору
 Re: Побитовое ИЛИ при группировке  [new]
ChA
Member

Откуда: Москва
Сообщений: 11319
Здесь уже смотрели ?
21 ноя 11, 15:45    [11632716]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить