我正在从几个表中提取财务信息并将其汇总到另一个表中。我想要的是通过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,因此&lt;&gt; ' - ',有些公司(但不是全部)用来表示不适用而不是零。
50和76是Accounts表中的项目编号,表示该金额属于哪个帐户。
我正在从资产数据表中获取金额和项目并将它们组合在一行上,以便我可以访问这些项目,执行一些数学运算并生成一个结果以存储在基金表格中。我希望一切都有道理。
那么我该如何将其变成能够为我所需的众多客户执行操作的东西。
谢谢,特别感谢所有提供想法和代码的优秀人才,让我能够做到这一点。
答案 0 :(得分:0)
为了在许多公司工作,有什么阻止这种做法?
您通过选择来限制公司&#34; WHERE CompanyID = 2335&#34 ;;只是扩大了数据透视中的数据范围。如果这没有帮助,那么我不确定我理解限制在哪里。