以下是我正在嘗試在SQL Server 2012中執行的操作。我想用表1中每個AMT值佔總數的百分比更新表2。得到%應該只是具有相同MasterDept的行的總數。當我只用一個MasterDept加載表格時,我可以使用這個SELECT查詢來獲取正確的百分比,但當有多個MasterDept時不知道如何去做。每個表中的前兩列在結構和列中的數據上都是相同的。SQL新手需要幫助查詢
SELECT ABCID,
[AMT%] = ClientSpreadData.AMT/CONVERT(DECIMAL(16,4),(SELECT SUM(ClientSpreadData.AMT)
FROM ClientSpreadData))
FROM ClientSpreadData
表數據
TABLE 1 (MasterDept varchar(4), ABCID varchar(20), AMT INT)
Sample Data (4700, 1, 25),
(4300, 2, 30),
(4700, 3, 50),
(4300, 4, 15)
TABLE 2 (MasterDept varchar(4), ABCID varchar(20), [AMT%] INT)
Sample Data (4700, 1, AMT%)
AMT%應該等於AMT/SUM(AMT)。 SUM(AMT)應該只是總結表1中的MasterDept與表2中的MasterDept相匹配的值。
這是否有意義?
哪個RDBMS您使用的
SUM()
? MySQL,SQL Server 2008/20012等? –對不起!我正在使用SQL Server 2012 –
我正在嘗試更新表2不插入它以及 –