2013-03-01 3 views
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로 표시되므로 <> '-'인데 일부 회사 (전부는 아님)가 0과 반대로 Not Applicable을 나타내는 데 사용합니다.

50 및 76은 계정 테이블의 항목 번호이며 금액이 속한 계정을 나타냅니다.

대차 대조표 테이블에서 금액과 항목을 선택하여 한 줄에 모아서 항목에 액세스하고 일부 계산을 수행 한 다음 결과를 생성하여 자금 테이블에 저장합니다. 나는 모두가 의미가 있기를 바랍니다.

그래서 어떻게하면 내가 필요한만큼의 고객을위한 작업을 수행 할 수있는 무언가로 바꿀 수 있을까요?

감사합니다. 그리고 저에게 이것을 줄 수있는 아이디어와 코드를 제공 한 모든 훌륭한 사람들에게 특별한 감사의 말을 전합니다.

답변

0

많은 회사에서 일하는 것이 무엇을 멈추게합니까?

"WHERE CompanyID = 2335"를 선택하면 회사가 제한됩니다. 단지 피벗 내의 데이터 범위를 확장하십시오. 이것이 도움이되지 않는다면 제한이 어디에 있는지 잘 모르겠다.

관련 문제