2009-12-31 4 views
0

, 나는 테이블루프 내 SQL 데이터베이스에서

1 Account_Customer -AccountID -CustomerID -Account_CustomerID

이 개 계정은 이 -Balance

3 개 고객 을 -AccountID이 - 고객 ID - 이름 -Sex -Age

4 대출 -LoanID -AMOUNT -BranchName

5 Loan_Customer -Loan_CustomerID -LoanID -CustomerID

와 나는 계정의 자신의 번호와 함께 고객 목록 에 대한 저장 프로 시저를 작성하려면 , 총 계좌 잔액, 대출 수 및 총 대출 금액, 특정 도시에 거주하고, 성별 및 연령을 부여하고, 특정 지점에 계좌 및/또는 융자를 가지고있는 경우.

내 프로그램에서 계정 수와 총 계정 잔액을 계산할 수 있지만 할당을 위해 저장 프로 시저가 필요합니다.

도움을 주시면 감사하겠습니다.

CREATE PROCEDURE SelectCustomerDetailsBySex 
    @Sex <your data type here> 
AS 
BEGIN 
    SELECT cus.CustomerID, 
    cus.Name, 
    COUNT(acc.AccountID) AS AccountCount, 
    SUM(acc.Balance) AS AccountBalance, 
    COUNT(loa.LoanID) AS LoanCount, 
    SUM(loa.Amount) AS LoanTotal 
    FROM Customers cus 
    LEFT OUTER JOIN Account_Customer ac ON cus.CustomerID = ac.CustomerID 
    LEFT OUTER JOIN Accounts acc ON ac.AccountID = acc.AccountID 
    LEFT OUTER JOIN Loan_Customer lc ON cus.CustomerID = lc.CustomerID 
    LEFT OUTER JOIN Loans loa ON lc.LoanID = loa.LoanID 
    WHERE cus.Sex = @Sex 
    GROUP BY cus.CustomerID, 
    cus.Name; 
END 

가 그 예로서 할 것이다 (나는 아직도 우리는 몇 가지를 놓치고 생각하지만)

+0

하나의 쿼리에서 모든 것을 원하십니까? 아니면 몇 가지 별도의 쿼리? –

+1

나는 당신이하고 싶은 것을 Accounts 테이블에 놓치고 있다고 생각합니다. 특정 지점에서 고객이 어디에 계좌를 가지고 있는지 필터링하고 싶지만 계좌와 관련된 지점 정보가없는 경우 ... 또는있을 경우 볼 수 없습니다 ... – Rory

+1

제공된 항목에 아무것도 없습니다 고객이 살고있는 도시를 알려주는 테이블 –

답변

1

좋아,이 떠들썩한 파티를 제공 할 수 있습니다, 또는 당신은 나에게 또 다른하십니까?

+0

필요하지 않습니다. 고맙습니다! 하지만 오류가 발생합니다. 메시지 8120, 수준 16, 상태 1, 줄 1 'Customers.ID'열은 집계 함수 또는 GROUP BY 절에 포함되어 있지 않으므로 선택 목록에서 유효하지 않습니다. – Kubi

+0

죄송합니다. 그룹을 어떻게 잊을 수 있습니까? 잠시만 기다려주세요. 나중에 해결하겠습니다 ... – Rory

+0

그래, 지금 작동해야합니다 ... – Rory