Помощь по составлению запроса.

  • Автор темы Автор темы SPQR
  • Дата начала Дата начала

SPQR

Новичок
Помощь по составлению запроса.

select tm_payments.id_terminal,
sum(tm_payments.sum1) as sum1,
sum(tm_payments.sum2) as sum2,
sum(tm_payments.sum3) as sum3,
sum(tm_payments.sum4) as sum4,
tm_terms.term_type,
tm_terms.address
from tm_terms,
tm_payments
where tm_terms.id_terminal = 'J041233' and
tm_terms.id_terminal = tm_payments.id_terminal and
unix_timestamp(data) >= '1172696400' and
unix_timestamp(data) <= '1175288400'
group by tm_payments.id_terminal

Вот примерно такой запрос идет, не получается сделать следующее: в таблице tm_payments попадаются повторяющиеся записи(не я ее формирую)...как сделать запрос(см. выше), чтобы не учитывались повторения.
 
Зря написал ^^, просто эт для конкретного терминала и за конкретное время, это меняется, может условия добавляться, проблема ток не меняется)
 
нда? То есть ты утверждаешь, что конкретно этот запрос работает, да? И никаких ошибок не выдает?
 
да, работает, ток каюсь последнию строку не скопировал:
group by tm_payments.id_terminal
 
Угу, с этим значиться разобрались.
Так где конкретно не должны учитываться повторения?
 
Т.е агрегатные функции суммируют все значения из tm_payments, а как суммировать без учета дублирующих значений(их мало, но они есть, база большая).
 
Спасибо за ссылку, прочитал, но пока не догнал(
Внутри не пишется DISTINCT. После GROUP BY, тоже не получилось...
 
мдам, в документации не было указано, сейчас нашел, что DISTINCT с SUM работает только начиная с 5-го мускула. У тебя судя по всему меньше?
 
Да нет..не нужны, только, как говорил..не я формирую записи...И постоянно отслеживать их неудобно(каждый день обновление).
 
Неудобно, так неудобно. Вложенные запросы 4.1 вроде как поддерживать должен? Тогда можно попробовать как-то так:
SELECT [здесь суммы] FROM ... WHERE tm_payments.id (первичный ключ таблицы tm_payments) IN (SELECT tm_payments.id FROM tm_payments GROUP BY tm_payments.data).
 
SPQR
попробуй так складывать:
...
sum(tm_payments.sum1)*COUNT(DISTINCT tm_payments)/COUNT(*) as sum1
...
 
Спасибо за помощь, не работает. Посмотрел на версию, там 3.23. Обновлю, заработает ^^
 
SPQR
ошибка или всё равно неправильно суммирует?
нужно было COUNT(DISTINCT tm_payments.id) или другое которое PRIMARY KEY для таблицы tm_payments
 
Сверху