【问题标题】:Using the results of a SQL query as parameters for a second one使用 SQL 查询的结果作为第二个查询的参数
【发布时间】:2018-10-16 02:38:12
【问题描述】:

我们的 SQL 开发人员汇总了以下查询,以提取今天登录到我们系统的所有员工的列表。这个查询完美地工作,并会吐出一个名字列表。我需要做的是获取它吐出的名称列表,然后在新查询中使用这些名称为每个名称更改不同表中的列。

select distinct(t.CC_FullName) as Employee,
t.CC_Supervisor as Supervisor,
t.StaffCimID
from (
select s.*,
r.CC_FullName,
r.CC_Supervisor,
r.StaffCimID
from (
select AgentFirstName + ' ' + AgentLastName as AgentName,
Agent
from pia.dbo.Five9IntraDayExtract with(nolock)
group by AgentFirstName + ' ' + AgentLastName,
Agent
) s
inner join pia.dbo.StaffInformationNew r with(nolock)
    ON CASE
        WHEN s.Agent LIKE '%_manual' AND s.Agent = r.Five9Name_MTM THEN 1
        WHEN s.Agent NOT LIKE '%_manual' AND s.Agent = r.Five9Name THEN 1
        ELSE 0
        END = 1
        and r.EndDate is null
 ) t
 where t.CC_FullName is not null
 and t.StaffCimID is not null
 order by t.CC_FullName, t.CC_Supervisor

所以基本上在运行之后我得到一个包含三列的列表。我需要获取名称列,基本上执行以下操作:

Update Attendance Set Seated = '1' where name =   'John Doe'

我需要对初始查询的每个结果都这样做。最好的方法是什么?

【问题讨论】:

标签: sql sql-server


【解决方案1】:

将其添加到查询的顶部...

Update Attendance 
Set Seated = '1' 
where name in 
(select t.CC_FullName from (
    select s.*,
    r.CC_FullName,
    r.CC_Supervisor,
    r.StaffCimID
    from (
    select AgentFirstName + ' ' + AgentLastName as AgentName,
    Agent
    from pia.dbo.Five9IntraDayExtract with(nolock)
    group by AgentFirstName + ' ' + AgentLastName,
    Agent
    ) s
    inner join pia.dbo.StaffInformationNew r with(nolock)
        ON CASE
            WHEN s.Agent LIKE '%_manual' AND s.Agent = r.Five9Name_MTM THEN 1
            WHEN s.Agent NOT LIKE '%_manual' AND s.Agent = r.Five9Name THEN 1
            ELSE 0
            END = 1
            and r.EndDate is null
     ) t
     where t.CC_FullName is not null
     and t.StaffCimID is not null)

【讨论】:

  • 这非常有效。我不敢相信它是如此简单,而且我没有想到。我假设我需要在查询之后而不是之前放置一些东西。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-12-02
  • 2013-11-01
  • 2021-01-11
  • 2015-03-16
  • 2016-06-26
  • 2018-03-15
  • 2018-07-30
  • 1970-01-01
相关资源
最近更新 更多