簡體   English   中英

從另一個表更新值 SQL 表

[英]Update value SQL table from another table

我有這個表:

在此處輸入圖像描述

在此處輸入圖像描述

考慮到表 1 中的值,我需要像這樣更新 sum_ok 和 avg_ok:

在此處輸入圖像描述

我有這個代碼 SQL,但不能正常工作:

update 
    t2
set sum_ok = sum(case when t2.[status]='OK' then 1 else 0 end )
    ,avg_ok = avg(case when t2[status]='OK' then status end  )
from t1
    inner join t2
    on t1.A = t2.A --and t1.C = t2.C
where C is not null
group by A, C

謝謝!!

一種選擇是分別計算“ sum_ok ”和“ avg_ok ”值,然后在加入“ t2 ”表和計算值時應用UPDATE語句:

WITH cte AS (
    SELECT A, 
           C,  
           SUM(CASE WHEN [status] = 'ok' THEN 1 END) AS sum_ok,
           AVG(CAST ([value] AS FLOAT)) AS avg_ok
    FROM t1
    GROUP BY A, C
)
UPDATE t2
SET t2.sum_ok = cte.sum_ok,
    t2.avg_ok = cte.avg_ok
FROM       t2
INNER JOIN cte
        ON t2.A = cte.A AND t2.C = cte.C;

此處查看演示。

注意:在您的查詢中,您試圖訪問“ t2.status ”字段,而“ t2 ”表沒有它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM