Написал такой вот запрос:
Код:
SELECT
contract.title, /*название договора*/
contract.id, /*код договора*/
account.contractId, /*код устройства?*/
SUM(account.amount), /*наработка сессии в байтах/секундах*/
SUM(account.account) /*наработка сессии в рублях*/
FROM
inet_session_log_account_2_201311 AS account /* наработка по услугам для завершенных сесиий*/
LEFT JOIN inet_session_log_2_201311 AS session_log /*завершенные сессии */
ON account.sessionId = session_log.id
LEFT JOIN inet_serv_2 AS serv /*сервис*/
ON session_log.servId = serv.id
LEFT JOIN contract as contract /*договор*/
ON serv.contractId = contract.id
GROUP BY contract.id
WITH ROLLUP;
Получил ответ:
title id contractId SUM(account.amount) SUM(account.account)
NULL NULL 7 7395906 14.09970
20131111 8 8 2875899799 5482.15660
20131119-01 11 11 31292779 74.55269
20131121-01 12 12 1523362085 2905.08904
20131121-02 13 13 1585210888 3023.27055
20131129-04 15 15 1474693748 2812.64713
20131129-07 18 18 12285738 23.40995
20131129-07 NULL 18 7510140943 14335.22566
Деньги вроде совпадают, с тем, что видно в клиенте, а вот трафик не очень.
Также непонятен столбец inet_session_log_account_{mid}_yyyyMM.contractId описанный в документации, как код устройства. Как видно из результата запроса, он совпадает с id договора, кроме тех случаев, где id договора NULL.
Знающие люди, прокомментируйте.