miksir:
SELECT l.contract,l.subs,group_concat(total)
FROM (SELECT contract,subs,period,sum(nach) AS total FROM allVp GROUP BY contract,subs,period) l
CROSS JOIN billing_period p
что-то типо того, но это сводиться к моему запросу, который работает 10 лет
miksir: да,по поводу начисления все верно, отдельной таблицы нет, т.к все данные заливаются из excel файла, сделать отдельную таблицу просто нереально.. надо вложить SUM(nach) AS money в подзапрос, так как надо сделать GROUP_CONCAT(money), по поводу индексов, отдельно индексы я делала, тогда даже обычный GROUP BY отрабатывает криво
miksir: мне немного непонятно, зачем здесь FROM (SELECT contract,subs FROM allVp GROUP BY contract,subs) l .... В своем примере я группировку делала, так как использую group_concat, для того, чтобы все начисления по абонентам выводились через ";"
нет, один subs может быть на разных контрактах. Я первый вариант описывала, что делаю отдельную таблицу из селекта, которая состоит из контракта, абонента и всех периодов
Дмитрий Ковальский: да, но это не значит, что надо идти через "Горы", условие OR и подразумевает, что если будет 1 -то запрос выведет -1, если будет 2- то запрос выведет -2, и если будет и то и другое, то выведет -> 1,2... А это извините, что-то фантастическое)