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 

上記は1つの会社で問題なく機能しますが、一度に複数のことを行う必要があります。

少し追加された情報:貸借対照表にはすべての情報がVARCHARとして含まれているため、<>'-'は、ゼロではなく該当なしを示すために一部の企業(すべてではない)が使用します。

50と76は、アカウントテーブルのアイテム番号であり、金額がどのアカウントに属しているかを示します。

貸借対照表テーブルから金額とアイテムを取得し、それらを1行にまとめて、アイテムにアクセスし、計算を実行して、Fundsテーブルに保存する結果を生成できるようにします。すべてが理にかなっていることを願っています。

では、どうすればこれを必要な数の顧客の操作を実行できるものに変えることができますか。

おかげで、そしてまた、私がこれまでに到達することを可能にしたアイデアとコードを提供してくれたすべての善良な人々に特に感謝します。

4

1 に答える 1

0

現状のように、多くの企業で働くためにこれを止めているのは何ですか?

「WHERE CompanyID = 2335」を選択して会社を制限しています。ピボット内のデータの範囲を広げるだけです。これが役に立たない場合は、制限がどこにあるのかよくわかりません。

于 2013-03-01T11:47:34.720 に答える