我正在从几个表中提取财务信息并将其汇总到另一个表中。我想要的是通过 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
以上适用于一家公司,但我需要一次做几个。
一点补充信息:资产负债表包含所有信息作为 VARCHAR,因此 <> '-',一些公司(但不是全部)使用它来表示不适用,而不是零。
50 和 76 是 Accounts 表中的项目编号,表示金额属于哪个帐户。
我从资产负债表中提取金额和项目并将它们组合在一行上,以便我可以访问这些项目,执行一些数学运算并生成存储在 Funds 表中的结果。我希望一切都说得通。
那么我怎样才能把它变成可以为我需要的尽可能多的客户执行操作的东西。
谢谢,也特别感谢所有贡献想法和代码的好人,让我能走到这一步。