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 :: SQL запрос

 PHP.SU

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


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

> Без описания
alezander
Отправлено: 30 Января, 2017 - 01:03:20
Post Id


Новичок


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


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




Спойлер (Отобразить)


таблица 1 (kassa)

id coming idofoffice
1 200.00 1
2 819.00 1
3 481.60 1
4 100.00 2
9 100.00 2

Таблица 2 (office)

idofoffice nameofoffice
1 ЦО
2 Х1

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

office comingsum
ЦО 1701.60
 
 Top
T1grOK
Отправлено: 30 Января, 2017 - 09:52:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013  


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




GROUP BY + ORDER BY


-----
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
 
 Top
Мелкий Супермодератор
Отправлено: 30 Января, 2017 - 17:57:14
Post Id



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


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


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




По-хорошему, на свой запрос вы должны были получить сообщение об ошибке. Вероятно, речь о старом или неправильно настроенном mysql (дефолтный конфиг - это неправильный), где такое допускалось.

Проще говоря - вы не указали, по какому признаку группировать строки. А при наличии функции агрегации и отсутствия группировки подразумевается группировка в одну строку.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT office.nameofoffice AS office, inc FROM office LEFT JOIN (
  2. SELECT idoffice, SUM(kassa.coming) AS inc FROM kassa GROUP BY idoffice
  3. ) income USING(idofoffice)

left join - если нужны все office. ifnull или coalesce добавить по вкусу.
inner join - если только те, у которых есть хоть что-то в kassa


-----
PostgreSQL DBA
 
 Top
alezander
Отправлено: 30 Января, 2017 - 18:24:25
Post Id


Новичок


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


Помог: 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