2013-03-01 60 views
1

我正在從幾個表中提取財務信息並將其彙總到另一個表中。我想要的是通過accountID從餘額表中選擇多個帳戶項目,然後將項目相加,然後將結果保存到另一個表格中。我需要爲幾個客戶做這個。我曾出了問題的一部分,在該位的代碼:如何從同一列中爲多個帳戶提取多個條目?

;with 
T1 AS (
SELECT CompanyID, QEndDate, Qtr, [50], [76] FROM (
SELECT CompanyID, ItemID, CAST(Amount AS DECIMAL(18,4)) AS Amount, QEndDate, Qtr from BalanceSheet 
WHERE CompanyID = 2335 AND (ItemID = 50 OR ItemID = 76) AND Amount <> '-' 
AND QA = 'Q')as s 
PIVOT (MAX(Amount) FOR ItemID IN ([50], [76])) AS P 
) 

UPDATE Funds SET Funds.EV = (@mCap - ([50] + [76]))/@EB 
FROM T1 
INNER JOIN Funds ON T1.CompanyID = Funds.CompanyID 

以上優良工程爲一家公司,但我需要在同一時間做幾件。

稍微增加的信息: Balancesheet表包含所有信息作爲VARCHAR,因此<>' - ',有些公司(但不是全部)用於指示不適用,而不是零。

50和76是帳戶表中的項目編號,並指示該金額屬於哪個帳戶。

我從餘額表中提取金額和項目,並將它們組裝在一行中,以便我可以訪問這些項目,執行一些數學運算並生成一個結果存儲在Funds表中。我希望這一切都有道理。

那麼我怎麼能把這個變成可以爲我所需要的儘可能多的客戶執行操作的東西。

謝謝,也特別感謝所有提供想法和代碼的優秀人士,這讓我得以實現這一目標。

回答

0

這是什麼阻止這項工作在許多公司,因爲是?

您通過選擇「WHERE CompanyID = 2335」來限制公司;只是擴大數據透視中的數據範圍。如果這沒有幫助,那麼不知道我明白限制的地方。

相關問題