SELECT 列表中的列 CHDRNUM 或表达式无效。我是如何修复的?

Column CHDRNUM or expression in SELECT list not valid. How I fixed?

提问人:Yoga Resta 提问时间:1/13/2023 最后编辑:marc_sYoga Resta 更新时间:1/13/2023 访问量:48

问:

SELECT 
    a.CHDRNUM, a.COWNNUM
    CASE 
        WHEN COUNT(H.ENTITYCODE) > 0
            THEN 'Y'
            ELSE 'N'
    END AS B
FROM 
    (SELECT CHDRNUM,COWNNUM 
     FROM CHDRPF)  AS a
INNER JOIN 
    (SELECT ENTITYCODE, ENTITYTYPE, ISTATUS
     FROM ZBLSPF 
     WHERE ENTITYTYPE = 'CN' 
       AND ISTATUS IN ('RED', 'RED 1', 'RED 2', 'RED 3', 'RED 4', 'RED 5')) AS H ON H.ENTITYCODE = A.COWNNUM 
WHERE 
    a.CHDRNUM = '123';

为什么这 2 列不包含在选择列表中,但当我删除 2 列 () 时,它会运行。CHDRNUM, COWNNUM

我得到的错误是

SELECT 列表中的列 CHDRNUM 或表达式无效

SQL PostgreSQL 语法错误

评论

0赞 Jonas Metzler 1/13/2023
请设置一个小提琴来演示问题并分享链接。
0赞 1/13/2023
您正在使用聚合函数,因此您需要一个GROUP BY
0赞 1/13/2023
不相关,但: 可以简化为FROM (SELECT CHDRNUM,COWNNUM FROM CHDRPF) AS aFROM CHDRPF AS a
0赞 1/13/2023
"SELECT 列表中的列 CHDRNUM 或表达式无效“听起来不像 Postgres 错误消息。Postgres 会抱怨:“列”a.chdrnum“必须出现在 GROUP BY 子句中或用于聚合函数”。您真正使用的是哪种 DBMS?

答: 暂无答案