0

编写的第一个查询用于查找分配给我们员工的工单,用于设置为特定状态的特定组。

  SELECT DISTINCT [SENT TO]
  FROM [sdetst].[_SMDBA_].[_TELMASTE_]
  WHERE [_GROUP_] = 1003 and [SEQ_UDSTATUS:] = 1002 and [SENT TO] is not null 

编写第二个查询是为了定位当前在线且可用的员工。

  SELECT DISTINCT DESK._ACTIVEUSERS_.[Seq.User] 
  FROM DESK.[Support Staff] INNER JOIN DESK._ACTIVEUSERS_ 
  ON DESK.[Support Staff].Sequence = DESK._ACTIVEUSERS_.[Seq.User] 

我想要做的是在查询 1 中获得不在查询 2 中的结果。然后,在我得到这个之后,我计划将这些值设置为 null,因为它会使票证未分配并且可以由其他工作人员处理。我打算将此设置为每隔几分钟运行一次的计划作业。

4

1 回答 1

0

如果您使用关键字except来确定您希望更新的 telMaste 记录怎么办?

像这样的东西?

;WITH query1WithoutQuery2 AS (
  SELECT DISTINCT [SENT TO]
  FROM [sdetst].[_SMDBA_].[_TELMASTE_]
  WHERE [_GROUP_] = 1003 and [SEQ_UDSTATUS:] = 1002 and [SENT TO] is not null
  EXCEPT
  SELECT DISTINCT DESK._ACTIVEUSERS_.[Seq.User] 
  FROM DESK.[Support Staff] INNER JOIN DESK._ACTIVEUSERS_ 
  ON DESK.[Support Staff].Sequence = DESK._ACTIVEUSERS_.[Seq.User] 
)
UPDATE telMaste
  SET [SENT TO] = NULL 
FROM 
  [sdetst].[_SMDBA_].[_TELMASTE_] as telMaste 
INNER JOIN 
  query1WithoutQuery2 
on telMaste.[SENT TO] = query1WithoutQuery2.[SENT TO]
WHERE [_GROUP_] = 1003 and [SEQ_UDSTATUS:] = 1002 and [SENT TO] is not null
于 2013-10-11T17:29:09.340 回答