【问题标题】:Need help creating an OUTER JOIN to count spaces需要帮助创建 OUTER JOIN 以计算空间
【发布时间】:2018-04-14 10:13:48
【问题描述】:

我有一个表 vw_Lab_Space 列出了我所有的实验室,并有一个 Lab_Space_Id 列是关键,还有一个 Campus_Name 列,以及一堆其他列。

然后在vw_Subnets 表中,它是每个子网的列表,我有一个外键与Lab_Space_Id 相同的名称和Subnet_Name 的不同键。

我试图确定,对于每个Campus_Name,总共存在多少个实验室,以及有多少个实验室与至少一个子网相关联。许多实验室将有 0 个与之关联的子网......即vw_Subnets 中没有该实验室的 Lab_Space_Id 条目。

所以我想我需要某种类型的OUTER JOIN,但我就是想不出正确的语法。

Campus_Name | Lab_Space_Id    
--------------------------  
Red         | 1   
Red         | 2   
Green       | 3   
Blue        | 4   
Blue        | 5   


Lab_Space_Id | Subnet_Name  
--------------------------  
1            | A  
3            | B  

输出将是:

Campus | # Labs | # Labs with Subnets  
-------------------------------------
Red    | 2      | 1  
Green  | 1      | 1  
Blue   | 2      | 0  

【问题讨论】:

  • 样本数据和预期输出会有所帮助。
  • 样本数据、所需的输出以及您迄今为止编写的 SQL 遇到问题并且 无法提出正确的语法会很有用.

标签: sql sql-server


【解决方案1】:

我怀疑你想多了

Select A.Campus_Name 
      ,Labs    = sum(1)
      ,SubNets = count(B.Lab_Space_ID)
 from YourTable1 A
 Left Join YourTable2 B on A.Lab_Space_Id = B.Lab_Space_Id
 Group By A.Campus_Name

返回

Campus_Name Labs    SubNets
Blue        2       0
Green       1       1
Red         2       1

【讨论】:

    猜你喜欢
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 2023-01-27
    相关资源
    最近更新 更多