Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сложный запрос в базу данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: одним запроссом в базу
nmakhnik
Отправлено: 02 Ноября, 2013 - 20:45:31
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




помогите пожалуйста очень нужно!!!
В таблице 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(Воск)
 
 Top
Мелкий Супермодератор
Отправлено: 02 Ноября, 2013 - 20:59:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




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.


-----
PostgreSQL DBA
 
 Top
nmakhnik
Отправлено: 02 Ноября, 2013 - 21:32:59
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Спасибо огромное! очень помог!!!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Администрирование БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB