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

Откуда:
Сообщений: 12
Здравствуйте народ. Есть к Вам вопрос:

Есть запрос:

declare @TempTime table (Venueid nvarchar(max),VenueName nvarchar(max),TimeTableScheduleCount int, Caption nvarchar(max), CountT int)

insert @TempTime (Venueid,VenueName,TimeTableScheduleCount,Caption, Countt)

Select Venueid,
VenueName,
TimeTableScheduleCount,
case when TimeTableScheduleCount = 1 then N'Зайнято' else N'Вільно' end as Caption,
TimeTableScheduleCount
from timeTable

join Venue with (nolock) on VenueID = TimeTableVenueRef
where TimeTableScheduleCount is not null

Select * from @TempTim

Он возвращает вот такую таблицу:

помогите пожалуйста подсчитать количество полей в колонке countT, количество нулей и единиц, для каждой группы кабинетов (кабинет и 001 кабинет)
не судите строго, только учусь.

К сообщению приложен файл. Размер - 93Kb
2 июн 16, 10:43    [19248780]     Ответить | Цитировать Сообщить модератору
 Re: Сумирование полей  [new]
iljy
Member

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

count(countT), sum(countT), sum(1-countT)
2 июн 16, 10:50    [19248805]     Ответить | Цитировать Сообщить модератору
 Re: Сумирование полей  [new]
Добрый Э - Эх
Guest
MaksProdavayko,

не совсем понятно, что именно должно быть на выходе, но возможно нужен count() + group by. или, как вариант, count() over(partition by ) если надобности в группировке данных нет
2 июн 16, 10:51    [19248810]     Ответить | Цитировать Сообщить модератору
 Re: Сумирование полей  [new]
MaksProdavayko
Member

Откуда:
Сообщений: 12
Добрый Э - Эх
MaksProdavayko,

не совсем понятно, что именно должно быть на выходе, но возможно нужен count() + group by. или, как вариант, count() over(partition by ) если надобности в группировке данных нет



смотрите есть таблица с кабинетами (кабинет и 001 кабинет) где ноль там свободный кабинет, где 1 значить занято.

нужно: подсчитать сумму полей для кабинета "Кабинет" где ид 5, подсчитать количество 1 (промежутков когда он занят) и количество нулей (промежутков когда он свободен).
также и для "001 кабинет"

есть надобность в группировке, ибо кабинетов много.

результат можно вывести в виде временной таблички...


iljy
MaksProdavayko,

count(countT), sum(countT), sum(1-countT)


простите, не совсем понял что куда....
2 июн 16, 12:59    [19249583]     Ответить | Цитировать Сообщить модератору
 Re: Сумирование полей  [new]
Добрый Э - Эх
Guest
MaksProdavayko,

на выходе твой пример с картинки должен будет свернуться всего до двух строк? одна по "кабинету" и одна по "кабинету 001"?
или все строки дожны остаться на месте, но в выборке должны появится интересуемые тебя поля с суммами свободных/занятых состояний кабинетов?
2 июн 16, 13:05    [19249623]     Ответить | Цитировать Сообщить модератору
 Re: Сумирование полей  [new]
MaksProdavayko
Member

Откуда:
Сообщений: 12
Добрый Э - Эх
MaksProdavayko,

на выходе твой пример с картинки должен будет свернуться всего до двух строк? одна по "кабинету" и одна по "кабинету 001"?
или все строки дожны остаться на месте, но в выборке должны появится интересуемые тебя поля с суммами свободных/занятых состояний кабинетов?


на выходе хотелось бы получить табличку с колонками:
ид кабинета/ сумма всех полей/ сумма единиц/ сумма нулей

п.с спасибо за внимание к посту))
2 июн 16, 14:10    [19250167]     Ответить | Цитировать Сообщить модератору
 Re: Сумирование полей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
MaksProdavayko
Добрый Э - Эх
MaksProdavayko,

на выходе твой пример с картинки должен будет свернуться всего до двух строк? одна по "кабинету" и одна по "кабинету 001"?
или все строки дожны остаться на месте, но в выборке должны появится интересуемые тебя поля с суммами свободных/занятых состояний кабинетов?


на выходе хотелось бы получить табличку с колонками:
ид кабинета/ сумма всех полей/ сумма единиц/ сумма нулей

п.с спасибо за внимание к посту))
сумма всех полей - SUM(поле1), SUM(поле2), ...
сумма единиц - sum(countT)
сумма нулей - sum(1-countT)

Ну и добавьте в список полей ид кабинета, а в конце запросе group by ид кабинета
2 июн 16, 14:20    [19250241]     Ответить | Цитировать Сообщить модератору
 Re: Сумирование полей  [new]
MaksProdavayko
Member

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

Спасибо!
2 июн 16, 18:46    [19251631]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить