小编ari*_*ios的帖子

从单个 CTE 一起使用 INSERT 和/或 UPDATE

我正在尝试使用名为的 cte 查询 cte,s4并根据结果插入或更新到另一个表eventslog。我无法在单个查询中执行此操作,需要先将数据插入临时表中。我想摆脱对临时表部分的插入,直接插入或更新它。

我想我不止一次调用那个 cte 有问题。有解决办法吗?如何通过查询单个 cte 插入或更新表?非常感谢任何帮助。

SQL;

 ,ss4 
 AS (SELECT DISTINCT h.groupid, 
                     h.eventid, 
                     Sum(h.vcheck) AS tot ,
                     max(h.eventtime) as eventtime
     FROM   ss3 h 
     GROUP  BY h.groupid, 
               h.eventid
               ) 
INSERT INTO @glo 
            (eventtime, 
             eventid, 
             groupid, 
             vcheck) 
SELECT DISTINCT i.eventtime, 
                i.eventid, 
                i.groupid, 
                i.tot 
FROM   ss4 i 


INSERT INTO eventslog 
            (eventtime, 
             eventid, 
             groupid) 
SELECT DISTINCT j.eventtime, 
                j.eventid, 
                j.groupid 
FROM   @glo j 
WHERE    
  j.vcheck = 0 
  AND NOT EXISTS(SELECT eventid 
                 FROM   eventslog 
                 WHERE  eventid = j.eventid 
                        AND …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

5
推荐指数
2
解决办法
4214
查看次数

标签 统计

sql ×1

sql-server ×1

sql-server-2008 ×1