Проблема с синтаксисом SQL - PullRequest
0 голосов
/ 16 марта 2011

Я соединяю две таблицы и делаю простой подсчет, но я не могу переименовать переменную объединенного ключа во что-то более подходящее для этих двух таблиц, я продолжаю получать ошибку "CUSTOMER_NO" недопустимо контекст, где он используется. Я уверен, что это просто небольшая синтаксическая ошибка, но я ее не вижу ...

SELECT owner_no AS customer_no,

CASE
WHEN customer_no BETWEEN 5000 and 5999 THEN 'RENTER'
WHEN customer_no BETWEEN 6000 and 6999 THEN 'OWNER'
END AS customer_type

FROM owner_phone AS op
INNER JOIN renter_phone AS rp ON op.owner_no = rp.renter_no

GROUP BY customer_no
HAVING COUNT(*) > 1;

Ответы [ 2 ]

3 голосов
/ 16 марта 2011

Используйте фактическое имя столбца в ваших CASE и GROUP BY, а не псевдоним столбца.

CASE
WHEN owner_no BETWEEN 5000 and 5999 THEN 'RENTER'
WHEN owner_no BETWEEN 6000 and 6999 THEN 'OWNER'
END AS customer_type

FROM owner_phone AS op
INNER JOIN renter_phone AS rp ON op.owner_no = rp.renter_no
GROUP BY owner_no
HAVING Count(*) > 1;
2 голосов
/ 16 марта 2011

Вы должны использовать OWNER_NO в оставшейся части запроса, но оставить AS CUSTOMER_NO, чтобы сделать это имя столбца.

SELECT owner_no AS customer_no,
CASE
    WHEN owner_no BETWEEN 5000 and 5999 THEN 'RENTER'
    WHEN owner_no BETWEEN 6000 and 6999 THEN 'OWNER'
END AS customer_type
FROM owner_phone AS op
INNER JOIN renter_phone AS rp ON op.owner_no = rp.renter_no
GROUP BY owner_no 
HAVING COUNT(*) > 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...