Dan*_*sch 3 sql sql-server aggregate
UPDATE
Chemicals.dbo.ChmProductCompositions
SET Vhap = SUM(PercentOfProduct)
FROM
Chemicals.dbo.ChmProductCompositions PC
JOIN Chemicals.dbo.ChmCompositionChemicals CC ON CC.ProductCompositionID = pc.ProductCompositionID
JOIN Chemicals.dbo.ChmChemicals C ON C.ChemicalID = CC.ChemicalID
WHERE IsHazardous = 1
Run Code Online (Sandbox Code Playgroud)
我有上面的查询,我想知道像上面的查询一样获取总和并设置它还是每个特定的总和并设置它?
我还想知道它是否获得总和并将每个设置为总和,我如何获取每个单独项目的总和,然后将其设置为该总和?
它没有。试试这个查询——它是完全安全的,因为它返回一个错误。 UPDATEs 不是聚合,所以SUM()是不允许的。
加入前需要聚合:
UPDATE pc
SET Vhap = cc.PercentOfProduct
FROM Chemicals.dbo.ChmProductCompositions pc JOIN
(SELECT cc.ProductCompositionID, SUM(PercentOfProduct) as PercentOfProcue
FROM Chemicals.dbo.ChmCompositionChemicals CC JOIN
Chemicals.dbo.ChmChemicals C
ON C.ChemicalID = CC.ChemicalID
GROUP BY cc.ProductCompositionID
) cc
ON CC.ProductCompositionID = pc.ProductCompositionID
WHERE IsHazardous = 1;
Run Code Online (Sandbox Code Playgroud)
注意IsHazardous可能属于子查询。你的问题不清楚。
| 归档时间: |
|
| 查看次数: |
36 次 |
| 最近记录: |