如何从多个帐户的同一列中选取多个条目?

时间:2013-03-01 04:49:46

标签: sql-server-2008

我正在从几个表中提取财务信息并将其汇总到另一个表中。我想要的是通过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表中的项目编号,表示该金额属于哪个帐户。

我正在从资产数据表中获取金额和项目并将它们组合在一行上,以便我可以访问这些项目,执行一些数学运算并生成一个结果以存储在基金表格中。我希望一切都有道理。

那么我该如何将其变成能够为我所需的众多客户执行操作的东西。

谢谢,特别感谢所有提供想法和代码的优秀人才,让我能够做到这一点。

1 个答案:

答案 0 :(得分:0)

为了在许多公司工作,有什么阻止这种做法?

您通过选择来限制公司&#34; WHERE CompanyID = 2335&#34 ;;只是扩大了数据透视中的数据范围。如果这没有帮助,那么我不确定我理解限制在哪里。