验证某个元素是否满足同一列中的两个条件

问题描述 投票:0回答:1

:)

我有以下情况

我需要这样的查询:

  • 第 1 列:cod_azienda_gerarchia=P2_04 的所有 cod_azienda(这意味着 cod_azienda 是层次结构 P2_04 的一部分)
  • 第 2 列:该列将告诉我上一列的 cod_azienda 是否也具有 cod_azienda_gerarchia=P2_03(如果是,则使用“是”,如果不是,则使用“否”)。如果“是”,则意味着 cod_azienda 是层次结构 P2_04 和 P2_03 层次结构的一部分,如果“否”,则 cod_azienda 仅是 P2_04 层次结构的一部分。

例如:

第 1 栏 第 2 栏
P2_CN_JV_001 是的
P2_CN_MOCE_001 没有

因为P2_CN_JV_001都有cod_azienda_gerarchia=p2_04和p2_03; 相反,P2_CN_MOCE_001 仅具有 cod_azienda_gerarchia=p2_04 和 p2_03。

提前谢谢您!

sql postgresql oracle hana
1个回答
0
投票

您可以通过使用像这样的自连接来完成此操作:

SELECT
    t1.cod_azienda AS [Column 1]
    ,CASE WHEN t2.cod_azienda IS NULL
        THEN 'No'
        ELSE 'Yes'
    END AS [Column 2]
FROM YourTable AS t1
LEFT JOIN YourTable AS t2
ON t2.cod_azienda = t1.cod_azienda
AND t2.cod_azienda_gerarchia = 'P2_03'
WHERE t1.cod_azienda_gerarchia = 'P2_04'

这应该会得到你想要的结果。

© www.soinside.com 2019 - 2024. All rights reserved.