Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Составление несложного запроса к БД


Автор: zargandr 28.6.2014, 10:37
Здравствуйте. Помогите пожалуйста написать запрос. Есть таблица из 4 столбцов:id ученика, имя ученика, его оценка, время с точность до секунды, когда была поставлена эта оценка. Нужно найти количество оценок за каждый день месяца 01.2012. В качеству СУБД использую access. Заранее спасибо за ответы.

Автор: ТоляМБА 28.6.2014, 15:55
Цитата(zargandr @  28.6.2014,  12:37 Найти цитируемый пост)
Нужно найти количество оценок за каждый день месяца 01.2012

Код
SELECT Count(Table1.Оценка) AS A, Format((Table1.Время), "dd/mm/yyyy") as B
FROM Table1
WHERE ((Year(Table1.Время)=2012) and (Month(Table1.Время)=01))
GROUP BY Format((Table1.Время), "dd/mm/yyyy")
ORDER BY 2;


Автор: bas 30.6.2014, 12:53
Цитата(ТоляМБА @  28.6.2014,  15:55 Найти цитируемый пост)
WHERE ((Year(Table1.Время)=2012) and (Month(Table1.Время)=01))

Код

where cast (Table1.Время as Date) BETWEEN '01.01.2012' and '31.01.2012'

Без преобразования
Код

where Table1.Время  BETWEEN '01.01.2012 00:00.00' and '31.01.2012 24.00.00'


Автор: Akina 30.6.2014, 14:11
bas
Цитата(zargandr @  28.6.2014,  11:37 Найти цитируемый пост)
В качеству СУБД использую access


Автор: zargandr 1.7.2014, 11:08
Большое спасибо за ответы)  "where cast (Table1.Время as Date) BETWEEN '01.01.2012' and '31.01.2012'" подобная запись используется для какой БД?
Можете сказать пожалуйста как аналогичная запись Format((Table1.Время), "dd/mm/yyyy") будет выглядеть в MS SQL SERVER?

Автор: Akina 1.7.2014, 11:30
zargandr, Вы уж определитесь с СУБД, что ли... то Access, то MS SQL... а, может, у Вас вообще ADP, а? 

Цитата(zargandr @  1.7.2014,  12:08 Найти цитируемый пост)
как аналогичная запись Format((Table1.Время), "dd/mm/yyyy") будет выглядеть в MS SQL SERVER? 

http://msdn.microsoft.com/en-us/library/aa226054(v=sql.80).aspx

Автор: zargandr 1.7.2014, 11:46
Спасибо) Сделал так CAST( people.data AS char(11)),  в этом случае запись формируется так 'Jun 1 2014', как можно сделать, чтобы запись отображалась так '2014-06-01', если это возможно?

Автор: Akina 1.7.2014, 12:09
Справку надо читать всю, а не первые две строки. Используйте CONVERT().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)