Выбор записей на основе максимального значения другого поля - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь составить список отдельных названий городов с их широтой и долготой, основываясь на максимальном значении поля площади земли. Лучшее, что я получаю, это ошибка «SQL: Ошибка корреляции полей».

SELECT a.primary_city as city ;
    , a.state as state_id ;
    , SPACE(30) as state_name ;
    , a.approximate_latitude as latitude ;
    , a.approximate_longitude as longitude ;
FROM citystate a ;
WHERE a.area_land = ;
    (SELECT MAX(VAL(b.area_land)) ;
    FROM citystate b ;
    WHERE (b.primary_city = a.primary_city ;
        AND b.state = a.state)) ;
GROUP BY a.primary_city ;
    , a.state ;
    , a.approximate_latitude ;
    , a.approximate_longitude 

Не уверен, что это сработает, так что надеемся на помощь.

Спасибо.

1 Ответ

0 голосов
/ 23 октября 2019

Такой SQL не поддерживается в VFP. Вы можете написать это как:

SELECT csa.primary_city as city ;
    , csa.state as state_id ;
    , SPACE(30) as state_name ;
    , csa.approximate_latitude as latitude ;
    , csa.approximate_longitude as longitude ;
FROM citystate csa ;
INNER JOIN ; 
    (SELECT primary_city, state, MAX(VAL(area_land)) as maxALand ;
    FROM citystate ;
    GROUP BY primary_city, state ) csb ;
  ON csb.primary_city = csa.primary_city ;
        AND csb.state = csa.state ;
WHERE VAL(csa.area_land) = csb.maxALand
...