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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2014, 20:39   #1
marwell.
Пользователь
 
Регистрация: 05.12.2012
Сообщений: 63
Вопрос sql запрос

доброго времени суток,
есть таблица с полями: id, id_student, date, flag_trud.
date - дата, flag_trud - 0 или 1. Пример
Снимок.JPG
Пользователь задает два числа: начальный год и конечный год. Можно ли составить такой запрос, который бы вернул кол-во записей за каждый год с начального по конечный, у которых flag_trud=1, сгруппировав по id_student за каждый год?
Т.е например начальный год = 2011, конечный = 2014. В итоге по той таблице что на скриншоте, в ответ должен получить нечто такое:
123.JPG
пока могу придумать только так:
Код:
select count(*) from history where date(date) between '2011' and '2014' and flag_trud='1' group by id_student
но это вернет только общее кол-во записей за этот промежуток с flag_trud=1 и сгруппировав по id_student.
marwell. вне форума Ответить с цитированием
Старый 20.03.2014, 21:07   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Группировки по id_student мало. Нужно еще добавить группировку по году, выдернув его из даты. Если еще нужны записи с нулевым количеством, то все сильно сложнее
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.03.2014, 21:18   #3
marwell.
Пользователь
 
Регистрация: 05.12.2012
Сообщений: 63
По умолчанию

спасибо!
вроде так верно получается:
Код:
select count(*), year(date) from history where year(date) between '2011' and '2015' and flag_trud='1' group by id_student, year(date)
marwell. вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL. Запрос. Novi4ok_11 Помощь студентам 15 18.12.2010 21:47
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
Sql запрос KrPr SQL, базы данных 4 14.10.2009 11:19
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15