Форумы портала PHP.SU » Серверное администрирование » Администрирование БД » сложный запрос в базу данных

Страниц (1): [1]
 

1. nmakhnik - 02 Ноября, 2013 - 20:45:31 - перейти к сообщению
помогите пожалуйста очень нужно!!!
В таблице T1 содержатся данные о дате и времени покупки и о сумме чека
A1 A2
10.10.2012 10:10 100.00
10.10.2012 11:10 120.00
11.10.2012 11:10 10.00
12.10.2012 11:10 20.00
12.10.2012 11:10 23.22

только с помощью sql
Составить SQL запрос, который построит итоговый отчет реализации с разрезом по дням недели
(понелельник, вторник ...)
Отчет должен иметь следующий вид

Месяц Понедельник Вторник Среда Четверг Пятница Суббота Воскресение
Январь SUM(пон) SUM(Втр) SUM(Ср) SUM(Чет) SUM(Пят) SUM(Суб) SUM(Воскр)
Февраль SUM(Понед) SUM(Втор) SUM(Ср) SUM(Чет) SUM(Пят) SUM(Суб) SUM(Воск)
2. Мелкий - 02 Ноября, 2013 - 20:59:29 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT month(`date`) AS month, DAYOFWEEK(`date`) AS weekday, sum(`amount`) FROM `orders` WHERE /**/ GROUP BY month, weekday


Или, если воспринимать задачу буквально:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT case month(`date`)
  2. when 1 then 'январь'
  3. when 2 then 'февраль'
  4. /**/
  5. end AS month,
  6. sum(IF(DAYOFWEEK(`date`)=1,`amount`,0)) AS 'Понедельник',
  7. sum(IF(DAYOFWEEK(`date`)=2,`amount`,0)) AS 'Вторник',
  8. /**/
  9. sum(IF(DAYOFWEEK(`date`)=0,`amount`,0)) AS 'Воскресенье' FROM `orders` WHERE /**/ GROUP BY month(`date`)

Мог наврать с синтаксисом case.
3. nmakhnik - 02 Ноября, 2013 - 21:32:59 - перейти к сообщению
Спасибо огромное! очень помог!!!

 

Powered by ExBB FM 1.0 RC1