Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将嵌套的Select语句转换为Update语句_Sql_Tsql_Sql Update_Dynamics Crm 2011 - Fatal编程技术网

Sql 将嵌套的Select语句转换为Update语句

Sql 将嵌套的Select语句转换为Update语句,sql,tsql,sql-update,dynamics-crm-2011,Sql,Tsql,Sql Update,Dynamics Crm 2011,这是我当前的select查询。我一直在尝试将最终老化更新为表中的一个字段,但我似乎无法理解。此外,我一直在使用DATEADD手动调整我的时间到UTC,如果有人知道如何重写,我很乐意倾听和学习 我的当前查询日期区分两个日期,并从中删除周末和假日。我只需要更新[最终老化],但我找不到方法。任何帮助都将不胜感激 SELECT TICKETNUMBER, CONVERT(DATE,CREATEDON), CONVERT(DATE,DATEAPPROVED),

这是我当前的select查询。我一直在尝试将最终老化更新为表中的一个字段,但我似乎无法理解。此外,我一直在使用DATEADD手动调整我的时间到UTC,如果有人知道如何重写,我很乐意倾听和学习

我的当前查询日期区分两个日期,并从中删除周末和假日。我只需要更新[最终老化],但我找不到方法。任何帮助都将不胜感激

    SELECT 
     TICKETNUMBER,
     CONVERT(DATE,CREATEDON),
     CONVERT(DATE,DATEAPPROVED),
     [WITH WEEKEND],
     [WITHOUT WEEKEND],
     [HOLIDAY COUNT],
     [WITHOUT WEEKEND] - [HOLIDAY COUNT] AS [FINAL AGING]
     FROM
     (
      SELECT 
       B.TICKETNUMBER, 
       A.CREATEDON, 
       DATEAPPROVED,
      DATEDIFF(DD, DATEADD(HOUR, 8, A.CREATEDON), DATEADD(HOUR, 8, DATEAPPROVED)) AS [WITH WEEKEND], 
      DATEDIFF(DD, DATEADD(HOUR, 8, A.CREATEDON), DATEADD(HOUR, 8, DATEAPPROVED)) -
      (DATEDIFF(WK, DATEADD(HOUR, 8, A.CREATEDON), DATEADD(HOUR, 8, DATEAPPROVED)) * 2) -
      CASE WHEN DATEPART(DW, DATEADD(HOUR, 8, A.CREATEDON)) = 1 THEN 1 ELSE 0 END +
      CASE WHEN DATEPART(DW, DATEADD(HOUR, 8, DATEAPPROVED)) = 1 THEN 1 ELSE 0 END AS [WITHOUT WEEKEND],
      (SELECT COUNT(DATE) FROM HOLIDAYMAINTENANCE 
WHERE CONVERT(DATE, DATEADD(HOUR, 8, DATE)) BETWEEN CONVERT(DATE,DATEADD(HOUR, 8, A.CREATEDON))
 AND CONVERT(DATE, DATEADD(HOUR, 8, DATEAPPROVED))) AS [HOLIDAY COUNT]
      FROM REQUESTMONITORING A JOIN INCIDENT B ON B.INCIDENTID = A.REQUESTID
      WHERE DATEAPPROVED IS NOT NULL
     ) AS [TABLE]
您将使用join执行更新:


我猜更新的关键是最终老化。此外,您没有提到要更新的表,但您需要将其加入—即使它是要定义toupdate的表。

感谢您的快速响应,我有一个关于加入的问题,我是否使用与查询中相同的加入?我需要的字段在REQUESTMONITORING表中。对于新手的问题我很抱歉,但我真的只是把我的select语句放在了with语句中,我想你会把select语句放在with语句中,然后请求监视器更新TableToUpdate。这就解决了问题,非常感谢!我会加上代表你,但这是我的第一篇文章。请不要直接更新Dynamics CRM数据库。Gordon解决方案从SQL方面来说是正确的,但对于Dynamics CRM直接更新,DB不受支持Hi Guido,这是什么意思?
with toupdate as (
      <your query here>
     )
update
    set [Final Aging] = toupdate.[Final Aging]
    from TableToUpdate ttu join
         toupdate
         on ttu.TicketNumber = toupdate.TicketNumber;