Ссылка не поддерживается для групповой функции - PullRequest
5 голосов
/ 30 июня 2011

У меня возникли проблемы с использованием этого запроса. Похоже, что я не могу использовать псевдоним как ссылку на группу по запросу

SELECT v.V_VEHICLEID, v.V_LICENSENO,
ROUND((MAX(IF(DAY(WP_DATETIME) = 1, WP_ODOMETER, NULL)) - MIN(IF(DAY(WP_DATETIME) = 1, WP_ODOMETER, NULL))) / 1000) AS TRIP1,    
...,
ROUND((MAX(IF(DAY(WP_DATETIME) = 31, WP_ODOMETER, NULL)) - MIN(IF(DAY(WP_DATETIME) = 31, WP_ODOMETER, NULL))) / 1000) AS TRIP31,

ROUND(MAX(IF(DAY(WP_DATETIME) = 1, WP_FUELREAD, NULL)) - MIN(IF(DAY(WP_DATETIME) = 1, WP_FUELREAD, NULL)),2) AS FUEL1,
...,
ROUND(MAX(IF(DAY(WP_DATETIME) = 31, WP_FUELREAD, NULL)) - MIN(IF(DAY(WP_DATETIME) = 31, WP_FUELREAD, NULL)),2) AS FUEL31,

(SELECT TRIP1 / FUEL1) AS ECON1,
...,
(SELECT TRIP31 / FUEL31) AS ECON31
FROM VEHICLES v
JOIN WAYPOINTS wp on wp.WP_VEHICLEID = v.V_VEHICLEID
WHERE MONTH(wp.WP_DATETIME) = '6' AND v.V_USER = 'tc'
GROUP BY wp.WP_VEHICLEID

ошибка

Ссылка 'TRIP1' не поддерживается(ссылка на групповую функцию)

любое решение?

Ответы [ 2 ]

10 голосов
/ 30 июня 2011

Вы не можете использовать псевдонимы столбцов, которые вы определили в запросе в том же запросе.Попробуйте что-то вроде следующего:

SELECT   *,
         TRIP1 / FUEL1 AS ECON1,
         TRIP31 / FUEL31 AS ECON31,
         OTHER COLUMNS....
FROM
(
    SELECT    v.V_VEHICLEID, 
              v.V_LICENSENO,
              ROUND((MAX(IF(DAY(WP_DATETIME) = 1, WP_ODOMETER, NULL)) - MIN(IF(DAY(WP_DATETIME) =     1,     WP_ODOMETER, NULL))) / 1000) AS TRIP1,
              ROUND(MAX(IF(DAY(WP_DATETIME) = 1, WP_FUELREAD, NULL)) - MIN(IF(DAY(WP_DATETIME) = 1,     WP_FUELREAD, NULL)),2) AS FUEL1,
              ROUND((MAX(IF(DAY(WP_DATETIME) = 31, WP_ODOMETER, NULL)) - MIN(IF(DAY(WP_DATETIME) = 31, WP_ODOMETER, NULL))) / 1000) AS TRIP31,
              ROUND(MAX(IF(DAY(WP_DATETIME) = 31, WP_FUELREAD, NULL)) - MIN(IF(DAY(WP_DATETIME) = 31, WP_FUELREAD, NULL)),2) AS FUEL31,
              OTHER COLUMNS...
    FROM      VEHICLES v
    JOIN      WAYPOINTS wp
    ON        wp.WP_VEHICLEID = v.V_VEHICLEID
    WHERE     MONTH(wp.WP_DATETIME) = '6' 
    AND       v.V_USER = 'tc'
    GROUP BY  wp.WP_VEHICLEID
) t
2 голосов
/ 30 июня 2011

вы не указали псевдоним WP. посмотрите, это должно быть так: ...

JOIN WAYPOINTS wp on wp.WP_VEHICLEID = v.V_VEHICLEID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...