【问题标题】:SQL Server - Find Sites that have employees but no adminSQL Server - 查找有员工但没有管理员的站点
【发布时间】:2015-11-21 11:25:05
【问题描述】:

尝试整理一个 sql 查询,但目前有点卡住,因为我还很新。我需要汇总一个查询,该查询将返回数据库中雇用员工的所有站点 - 但没有人将任何人设置为 SA (UR.RoleID = 13)

到目前为止我得到了什么:

Select 
    S.SiteID, S.SiteName
From 
    Sites S 
Left Join 
    Users U ON S.SiteID = U.SiteID 
Inner Join 
    UsersRoles UR ON U.UserID = UR.UserID

【问题讨论】:

  • 请提供一些示例数据和预期输出

标签: sql sql-server exists


【解决方案1】:

几个exists 运营商应该可以解决问题:

SELECT SiteID, SiteName
FROM   Sites s
WHERE  
       -- Site has users assigned to it
       EXISTS (SELECT *
               FROM   Users u
               WHERE  u.SiteId = U.SiteId)
       -- Site doesn't have an admin
       AND NOT EXISTS (SELECT *
                       FROM   Users u
                       JOIN   UserRoles ur ON ur.UserId = u.UserId
                       WHERE  u.SiteId = U.SiteId AND ur.RoleId = 13)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多