Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2012, 13:54   #1
kate158
Форумчанин
 
Регистрация: 01.08.2008
Сообщений: 383
По умолчанию группировка с фильтрацией

есть таблица: получить:

нужно сгруппировать данные таким образом:
- поле статус: если значение <=8, то повторения сложить, остальные числа оставить без изменения.
- группировка по дате - выбрать только месяц
помогите пожалуйста, не могу догнать

и еще как настроить отображение - если статус =10, значит это отпуск, если 20 - больничный и т.д.(поле status -числовое)

Последний раз редактировалось kate158; 29.10.2012 в 14:11.
kate158 вне форума Ответить с цитированием
Старый 29.10.2012, 14:05   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
группировка по дате - выбрать только месяц
почему только месяц? Вы что, данные октября 2012 будете суммировать с данными октября 2011 и октября 2010 ?

теперь по сути. функции работы с датами отличаются в различных СУБД
например,
MONTH(my_date) (в MS Access, MS SQL)
extract(MONTH from my_date) (в Oracle )

и т.д.

по поводу группировки по полю статус:
я бы воспользовался объединением unuin двух результатов - запроса с группировкой по полю статус where Status<=8 и запроса без группировки where Status > 8

примерно так
Код:
select Sum(НужноеПоле) as MySum, Status from Table1
   where Status<=8
   group by Status
union all
select НужноеПоле as MySum, Status from Table1
  where Status>8

Последний раз редактировалось Serge_Bliznykov; 29.10.2012 в 14:07.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.10.2012, 14:09   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Ничего не понял. Сгруппировать по месяцу и для статуса<=8 сложить, остальные оставить без изменения как-то не совмещается. Покажите что в результате получить нужно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.10.2012, 14:37   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

тю. так это же табель-календарь!
только я не вижу, где, собственно, отработанные часы?! o_O!

Цитата:
и еще как настроить отображение - если статус =10, значит это отпуск, если 20 - больничный и т.д.(поле status -числовое)
через саse можно
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с фильтрацией KingWaR56 Помощь студентам 5 09.05.2012 15:28
Проблема с фильтрацией Kuraj БД в Delphi 4 29.06.2010 17:32
Жесть с фильтрацией grafgrial БД в Delphi 4 11.06.2010 09:27
Помогите с фильтрацией vr-frost БД в Delphi 4 29.04.2009 12:50
Пролемы с фильтрацией 1234 БД в Delphi 1 24.07.2008 11:28