Форум PHP

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: kapitalist   (21.08.2017 в 11:29)
Всем добрый день. Есть задача из базы данных выбрать количество и общую сумму платежей с некоторыми условиями.

Выбрать нужно только данные с уникальным `pay`.`id_global`

SELECT DISTINCT `pay`.`id_global`, COUNT(`pay`.`id`) as `countPay`, SUM(`summa`) as `summa`, `global`.`id` FROM `pay`, `global` WHERE `global`.`registr` LIKE '%$row[period]%' and `pay`.`id_global`=`global`.`id` ORDER BY `pay`.`id` ASC


Кажется, что distinct должен работать.


SELECT DISTINCT `pay`.`id_global`, COUNT(`pay`.`id`) as `countPay`, SUM(`summa`) as `summa`, `global`.`id` FROM `pay`, `global` WHERE `global`.`registr` LIKE '%$row[period]%' and `pay`.`id_global`=`global`.`id` ORDER BY `pay`.`id` ASC


Этот запрос возвращает такие же данные.

%row[period] - это переменная в которой хранится месяц и год за который выбираем данные. Понимаю, что можно было сделать через GROUP BY date_format, но в этой ситуации такой вариант не подходит.

Теперь 2 вопроса! Почему DISTINCT не работает? И как мне выбрать уникальные данные?


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: