Отчет по трафику по схеме 006

Технические вопросы по UTM 5.0
Ответить
Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Отчет по трафику по схеме 006

Сообщение Davion »

Пытаюсь выдернуть отчет по трафику за два месяца по схеме когда за предыдущие месяцы хранится в отдельных таблицах, к примеру
февраль discount_transactions_iptraffic_all, а январь discount_transactions_iptraffic_all_1233435600, пытаюсь выдернуть запросом (SELECT t_class, base_cost, SUM(bytes), SUM(discount) FROM discount_transactions_iptraffic_all WHERE discount_date>=1232888220 AND discount_date <=1235566679 AND account_id=140 UNION ALL SELECT t_class, base_cost, SUM(bytes), SUM(discount) FROM discount_transactions_iptraffic_all_1233435600 WHERE discount_date>=1232888220 AND discount_date <=1235566679 AND account_id=140) GROUP BY t_class,base_cost order by t_class, base_cost

ошибка ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') GROUPBY t_class,base_cost order by t_class, base_cost' at line 1


может ктонидь решал задачу???

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Обязательно одним запросом?

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion »

:( обязательно

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

А вот так если:

Код: Выделить всё

&#40;SELECT t_class, base_cost, SUM&#40;bytes&#41;, SUM&#40;discount&#41; FROM discount_transactions_iptraffic_all WHERE discount_date>=1232888220 AND discount_date <=1235566679 AND account_id=140&#41; UNION ALL &#40;SELECT t_class, base_cost, SUM&#40;bytes&#41;, SUM&#40;discount&#41; FROM discount_transactions_iptraffic_all_1233435600 WHERE discount_date>=1232888220 AND discount_date <=1235566679 AND account_id=140&#41; GROUP BY t_class,base_cost order by t_class, base_cost;
Читал вот это http://dev.mysql.com/doc/refman/5.0/en/union.html

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion »

читал недошло :(

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion »

с такими скобками тоже некатит(((

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

Код: Выделить всё

  &#40;SELECT discount_date, SUM&#40;bytes&#41; as 'bytes', t_class,
      MONTH FROM_UNIXTIME&#40;discount_date&#41;&#41; AS 'month',
      YEAR&#40;FROM_UNIXTIME&#40;discount_date&#41;&#41; AS 'year'
  FROM UTM5H.discount_transactions_iptraffic_all_200901
  WHERE 1 
    AND account_id = 3351
    AND &#40;discount_date BETWEEN '1230750000' AND '1262286058'&#41;
    AND t_class <> 0
  GROUP BY  year, month, t_class
  ORDER BY  year, month, t_class&#41;
UNION ALL
  &#40;SELECT discount_date, SUM&#40;bytes&#41; as 'bytes', t_class, 
      MONTH&#40;FROM_UNIXTIME&#40;discount_date&#41;&#41; AS 'month',
      YEAR&#40;FROM_UNIXTIME&#40;discount_date&#41;&#41; AS 'year'
  FROM UTM5.discount_transactions_iptraffic_all
  WHERE 1 
    AND account_id = 3351
    AND &#40;discount_date BETWEEN '1230750000' AND '1262286058'&#41;
    AND t_class <> 0
  GROUP BY  year, month, t_class
  ORDER BY  year, month, t_class&#41;

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion »

Magnum72 писал(а):

Код: Выделить всё

  &#40;SELECT discount_date, SUM&#40;bytes&#41; as 'bytes', t_class,
      MONTH FROM_UNIXTIME&#40;discount_date&#41;&#41; AS 'month',
      YEAR&#40;FROM_UNIXTIME&#40;discount_date&#41;&#41; AS 'year'
  FROM UTM5H.discount_transactions_iptraffic_all_200901
  WHERE 1 
    AND account_id = 3351
    AND &#40;discount_date BETWEEN '1230750000' AND '1262286058'&#41;
    AND t_class <> 0
  GROUP BY  year, month, t_class
  ORDER BY  year, month, t_class&#41;
UNION ALL
  &#40;SELECT discount_date, SUM&#40;bytes&#41; as 'bytes', t_class, 
      MONTH&#40;FROM_UNIXTIME&#40;discount_date&#41;&#41; AS 'month',
      YEAR&#40;FROM_UNIXTIME&#40;discount_date&#41;&#41; AS 'year'
  FROM UTM5.discount_transactions_iptraffic_all
  WHERE 1 
    AND account_id = 3351
    AND &#40;discount_date BETWEEN '1230750000' AND '1262286058'&#41;
    AND t_class <> 0
  GROUP BY  year, month, t_class
  ORDER BY  year, month, t_class&#41;
Спасибо все зашибись, но... необходимо просуммировать предыдущий и этот месяц у одинаковых классов трафика... а то он их раздельно группирует. Как это сделать запросом?

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion »

Код: Выделить всё

&#40;SELECT t_class, base_cost, SUM&#40;bytes&#41; as 'bytes', SUM&#40;discount&#41; as 'discount' FROM discount_transactions_iptraffic_all WHERE account_id = 140 AND &#40;discount_date BETWEEN '1232888220' AND '1235566679'&#41; AND t_class <> 0 GROUP BY t_class,base_cost,account_id order by account_id, t_class, base_cost&#41; UNION ALL &#40;SELECT t_class, base_cost, SUM&#40;bytes&#41; as 'bytes', SUM&#40;discount&#41; as 'discount' FROM discount_transactions_iptraffic_all_1233435600 WHERE account_id = 140 AND &#40;discount_date BETWEEN '1232888220' AND '1235566679'&#41; AND t_class <> 0 GROUP BY t_class,base_cost,account_id order by account_id, t_class, base_cost&#41; 
вот его надо подделать :(

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

Davion писал(а):

Код: Выделить всё

&#40;SELECT t_class, base_cost, SUM&#40;bytes&#41; as 'bytes', SUM&#40;discount&#41; as 'discount' FROM discount_transactions_iptraffic_all WHERE account_id = 140 AND &#40;discount_date BETWEEN '1232888220' AND '1235566679'&#41; AND t_class <> 0 GROUP BY t_class,base_cost,account_id order by account_id, t_class, base_cost&#41; UNION ALL &#40;SELECT t_class, base_cost, SUM&#40;bytes&#41; as 'bytes', SUM&#40;discount&#41; as 'discount' FROM discount_transactions_iptraffic_all_1233435600 WHERE account_id = 140 AND &#40;discount_date BETWEEN '1232888220' AND '1235566679'&#41; AND t_class <> 0 GROUP BY t_class,base_cost,account_id order by account_id, t_class, base_cost&#41; 
вот его надо подделать :(
В PHP суммируйте.

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion »

:shock: нет смайла нужного как в квипе а если SQLом ))) эхххх как все грустно((

Аватара пользователя
Ata-man
Сообщения: 427
Зарегистрирован: Пт янв 21, 2005 10:04
Откуда: Екатеринбург

Сообщение Ata-man »

Сделать вложенным запросом и суммировать то, что будет на выходе, например так:

Код: Выделить всё

SELECT Q1.t_class, Q1.base_cost, SUM&#40;Q1.bytes&#41;, SUM&#40;Q1.discount&#41;
FROM
&#40;&#40;SELECT t_class, base_cost, bytes, discount FROM discount_transactions_iptraffic_all WHERE discount_date>=1232888220 AND discount_date <=1235566679 AND account_id=140&#41;
 UNION ALL
&#40;SELECT t_class, base_cost, bytes, discount FROM discount_transactions_iptraffic_all_1233435600 WHERE discount_date>=1232888220 AND discount_date <=1235566679 AND account_id=140&#41;&#41; AS Q1
 GROUP BY Q1.t_class, Q1.base_cost
 ORDER BY Q1.t_class, Q1.base_cost 
Последний раз редактировалось Ata-man Ср фев 18, 2009 15:21, всего редактировалось 1 раз.

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion »

:wink: спасибо!!! Буду в ебурге пивом угощаю )))

Аватара пользователя
Ata-man
Сообщения: 427
Зарегистрирован: Пт янв 21, 2005 10:04
Откуда: Екатеринбург

Сообщение Ata-man »

Пожалуйста :)

Немного запрос подправил

Ответить