首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SELECT /和COUNT CASE修复SQL查询

使用SELECT /和COUNT CASE修复SQL查询
EN

Stack Overflow用户
提问于 2020-02-12 15:22:20
回答 1查看 42关注 0票数 0

以下SQL查询不工作,它将返回错误:

42601错误:子查询必须只返回一个列位置: 50

我需要为一个活的项目修复它,并且在这个项目上有困难。

代码语言:javascript
运行
复制
SELECT CASE WHEN habilitation.actif IS TRUE THEN (SELECT vue_cdc_for_opera.libelle,
                                                          dt_bdd_produit.libelle_dt,
                                                          vue_cdc_for_opera.classe_ue,
                                                          vue_cdc_for_opera.code_cdc,
    COALESCE(vue_cdc_for_opera.signe_ue, vue_cdc_for_opera.signe_fr),
    COUNT(CASE WHEN cdc_postgresql.id = habilitation.id_cdc_postgresql THEN 1 ELSE 0 END) as operateurs
    )
        ELSE (SELECT vue_cdc_for_opera.libelle,
                      dt_bdd_produit.libelle_dt,
                      vue_cdc_for_opera.classe_ue,
                      vue_cdc_for_opera.code_cdc,
                      COALESCE(vue_cdc_for_opera.signe_ue, vue_cdc_for_opera.signe_fr))
        END
FROM vue_cdc_for_opera, cdc_postgresql, dt_bdd_produit, operateur, habilitation;

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-12 15:45:55

很不清楚你想做什么,但在这里我能帮你做的是:

在这个例子中,如果habilitation.actif是真,那么您将选择count of.如果不是,那么您将为该行选择值0。请注意,在使用聚合函数时,必须使用组。另外,您还需要以某种方式将此表从from子句连接到.要想得到更多的帮助,在你的问题中加入更多的细节,数据也.

代码语言:javascript
运行
复制
SELECT vue_cdc_for_opera.libelle,
       dt_bdd_produit.libelle_dt,
       vue_cdc_for_opera.classe_ue,
       vue_cdc_for_opera.code_cdc,
       COALESCE(vue_cdc_for_opera.signe_ue, vue_cdc_for_opera.signe_fr),
       CASE WHEN habilitation.actif IS TRUE THEN 
            COUNT(CASE WHEN cdc_postgresql.id = habilitation.id_cdc_postgresql THEN 1 ELSE 0 END)
            else 0      
       END a
FROM vue_cdc_for_opera, cdc_postgresql, dt_bdd_produit, operateur, habilitation
group by vue_cdc_for_opera.libelle,
       dt_bdd_produit.libelle_dt,
       vue_cdc_for_opera.classe_ue,
       vue_cdc_for_opera.code_cdc,
       vue_cdc_for_opera.signe_ue, 
       vue_cdc_for_opera.signe_fr,
       habilitation.actif
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60191613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档