【问题标题】:SQL Server - return values based on all linked values meeting certain criteriaSQL Server - 基于满足特定条件的所有链接值返回值
【发布时间】:2022-11-29 02:08:21
【问题描述】:

假设我有一个包含属性 ID、属性所有者 ID 和所有者当前现金余额的表,例如:

property_id owner_id owner_cash
101 584 200000
102 882 10000
102 883 86500
102 884 140000
103 910 268000
103 911 300000

我需要返回属性 ID 的位置全部的关联所有者有最低现金余额,但不确定如何实现。如果至少有一个链接的所有者没有最低现金,那么结果中会忽略该财产。

例如,如果每个所有者需要拥有的最低现金余额为 50,000,则输出为:

property_id
101
103

确认一下,这是因为 owner_id 882 的现金少于 50,000,因此 property_id 102 不符合条件。

实现这一目标的最佳方法是什么?使用 Microsoft SQL 服务器。

我研究了递归 CTE,并可能使用 WHILE 循环来获得所需的结果,但无法在此处将它们付诸实践。

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    你可以利用不存在在这里,你想要 Property_Ids 不存在并且匹配 property_Idowner_cash < 50,000

    select distinct property_id 
    from t
    where not exists (
        select * from t t2
        where t2.property_id = t.property_id and t2.owner_cash < 50000
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 2018-06-30
      • 1970-01-01
      • 2021-05-15
      相关资源
      最近更新 更多