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... А это извините, что-то фантастическое)
Deexter: хотя он работает, если
if ($t1 != 0) {
$query="INSERT INTO arm_pyramid (numb_count_excel,name_canal,tar1,summ,date_removal) VALUES ('$count','".addslashes($name)."','$t1','$summ','$date_removal')";
$connection = Doctrine_Manager::connection();
$statement = $connection->execute($query);
}
if ($t2 != 0) {
$query="INSERT INTO arm_pyramid (numb_count_excel,name_canal,tar1,summ,date_removal) VALUES ('$count','".addslashes($name)."','$t2','$summ','$date_removal')";
$connection = Doctrine_Manager::connection();
$statement = $connection->execute($query);
}
Но я не уверенна, что правильно, коннектиться к базе на каждом условии..