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 

以上适用于一家公司,但我需要一次做几个。

一点补充信息:资产负债表包含所有信息作为 VARCHAR,因此 <> '-',一些公司(但不是全部)使用它来表示不适用,而不是零。

50 和 76 是 Accounts 表中的项目编号,表示金额属于哪个帐户。

我从资产负债表中提取金额和项目并将它们组合在一行上,以便我可以访问这些项目,执行一些数学运算并生成存储在 Funds 表中的结果。我希望一切都说得通。

那么我怎样才能把它变成可以为我需要的尽可能多的客户执行操作的东西。

谢谢,也特别感谢所有贡献想法和代码的好人,让我能走到这一步。

4

1 回答 1

0

是什么阻止了在许多公司工作的这种情况?

您通过选择“WHERE CompanyID = 2335”来限制公司;只是扩大枢轴内的数据范围。如果这没有帮助,那么不确定我是否理解限制在哪里。

于 2013-03-01T11:47:34.720 回答