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将计数值添加到另一个表中_Sql_Sql Server 2008 - Fatal编程技术网

SQL将计数值添加到另一个表中

SQL将计数值添加到另一个表中,sql,sql-server-2008,Sql,Sql Server 2008,嘿,伙计们,我得到了计算值。 我希望将其作为存储过程运行,以使用从计数中获得的值更新另一个表 SELECT COUNT(*) as counted FROM [DB] WHERE Date_Timestamp >= DATEADD(HOUR,6,CONVERT(VARCHAR(10), GETDATE(),110)) AND Date_Timestamp <= DATEADD(HOUR,18,CONVERT(VARCHAR(10), GETDATE()+1,110)) and tr

嘿,伙计们,我得到了计算值。 我希望将其作为存储过程运行,以使用从计数中获得的值更新另一个表

SELECT COUNT(*) as counted 
FROM [DB]
WHERE Date_Timestamp >= DATEADD(HOUR,6,CONVERT(VARCHAR(10), GETDATE(),110))
AND Date_Timestamp <= DATEADD(HOUR,18,CONVERT(VARCHAR(10), GETDATE()+1,110))
and trigger_loc = 'x'

不需要存储过程。我会使用CTE:

WITH newdata as (
      SELECT COUNT(*) as counted 
      FROM [DB]
      WHERE Date_Timestamp >= DATEADD(HOUR, 6, CAST(GETDATE() as DATE)) AND            
            Date_Timestamp <= DATEADD(HOUR, 18 + 24, CAST(GETDATE() as DATE)) AND
            trigger_loc = 'x'
    )
update toupdate
    set col = counted
    from t toupdate join
         newdata
         on toupdate.?? = newdata.??;
这还简化了日期算法,因此不需要转换为字符串


不清楚您要更新哪一行。这假设某个键上有一个联接

如果要将其作为存储过程,可以这样做:

CREATE PROCEDURE dbo.UpdateTableWithCountedValue AS
BEGIN
    UPDATE [Table You Want To Update]
    SET [column you want to update] = (SELECT COUNT(*) as counted 
  FROM [DB]
  WHERE Date_Timestamp >= DATEADD(HOUR, 6, CAST(GETDATE() as DATE)) AND            
        Date_Timestamp <= DATEADD(HOUR, 18 + 24, CAST(GETDATE() as DATE)) AND
        trigger_loc = 'x')
    WHERE [ConditionForRowsThatShouldBeUpdated]
END

显示另一个表,前后的样本数据。选择COUNT*作为从[DB]计数,其中Date_Timestamp>=DATEADDHOUR,6,CONVERTVARCHAR10,GETDATE,110和Date_Timestamp我想从我得到的计数中获取数据并将其更新到另一个表
exec dbo.UpdateTableWithCountedValue