Tôi gặp lỗi số nhận dạng không hợp lệ ORA-00904 'c'. Có gì sai với bí danh này?
select NO, count(JOINT_NO) as c
from JOINT
WHERE HOLDER = 'Y' AND JOINT.c > 1
GROUP BY NO;
Tôi gặp lỗi số nhận dạng không hợp lệ ORA-00904 'c'. Có gì sai với bí danh này?
select NO, count(JOINT_NO) as c
from JOINT
WHERE HOLDER = 'Y' AND JOINT.c > 1
GROUP BY NO;
Tôi nghĩ rằng bạn muốn tìm nạp những bản ghi có số lượng> 1. Vì vậy, bạn không thể sử dụng Indentifier C
trong WHERE
mệnh đề của cùng một truy vấn.
select NO, count(JOINT_NO) as c
from JOINT
WHERE HOLDER = 'Y'
GROUP BY NO
HAVING COUNT(JOINT_NO)>1;
Không có cột nào c
trong bảng JOINT
, dẫn đến thông báo lỗi bạn nhận được.
Thay đổi truy vấn của bạn như sau:
select NO, count(JOINT_NO) as c
from JOINT
WHERE HOLDER = 'Y'
GROUP BY NO
HAVING count(JOINT_NO) > 1;
Bạn có thể sử dụng một lựa chọn con (truy vấn con) trong mệnh đề FROM:
select T1.NO,T1.c
from
(
select NO, count(JOINT_NO) as c
from JOINT
WHERE HOLDER = 'Y'
GROUP BY NO
) as T1
where T1.c > 1
bạn cũng có thể sử dụng có :
select NO, count(JOINT_NO) as c
from JOINT
WHERE HOLDER = 'Y'
GROUP BY NO
HAVING COUNT(JOINT_NO)>1