2011-12-06 4 views
3

私は次のようにテーブルのセットがあります。一覧共同テーブルのレコード

顧客(cus_id、cus_name)

アカウント(acc_num、acc_balance、bra_code

枝を( bra_code、bra_address)

もし私がすべてのc 2つ以上のアカウント、支店およびその詳細を持つ顧客。 私はオラクルに新しい誰もが助けることを願っています。

それは

SELECT DISTINCT 
     C.CUS_ID, 
     (C.CUS_FIRST_NAME || ' ' || C.CUS_LAST_NAME) AS CUS_NAME, 
     C.CUS_IC, 
     C.CUS_ADDRESS, 
     C.CUS_POSTCODE, 
     C.CUS_CONTACT, 
     C.CUS_EMAIL, 
     C.CUS_AGE,  
     C.CUS_GENDER, 
     C.CUS_STATUS, 
     B.BRA_CODE, 
     B.BRA_ADDRESS, 
     B.BRA_POSTCODE, 
     R.REG_STATE, 
     R.REG_COUNTRY 
FROM CUSTOMER C, ACCOUNT A,BRANCH B, REGION R 
WHERE C.CUS_ID=A.CUS_ID AND 
     A.BRA_CODE=B.BRA_CODE AND 
     B.REG_ID=R.REG_ID AND 
     A.BRA_CODE IN (SELECT A.BRA_CODE 
        FROM CUSTOMER C, ACCOUNT A,BRANCH B 
        WHERE C.CUS_ID=A.CUS_ID AND A.BRA_CODE=B.BRA_CODE 
        GROUP BY A.BRA_CODE HAVING COUNT(A.BRA_CODE)>1) 
GROUP BY 
     C.CUS_ID, 
     C.CUS_FIRST_NAME, 
     C.CUS_LAST_NAME, 
     C.CUS_IC, 
     C.CUS_ADDRESS, 
     C.CUS_POSTCODE, 
     C.CUS_CONTACT, 
     C.CUS_EMAIL, 
     C.CUS_AGE, 
     C.CUS_GENDER, 
     C.CUS_STATUS, 
     B.BRA_CODE, 
     B.BRA_ADDRESS, 
     B.BRA_POSTCODE, 
     R.REG_STATE, 
     R.REG_COUNTRY 
     HAVING COUNT(C.CUS_ID)>1; 
+0

あなたの質問はこれまでのように見えます –

+0

こんにちは、私の質問を更新しました、助けてください:) –

+0

+1を含むtablこれはOracleのためのものです。 –

答えて

3

はこれを試してみてください..実際に私の割り当ての一部だこれまでのところ、私が何をしたかのようである:

SELECT * 
FROM customer c, account a, branch b 
WHERE c.cus_id IN (
     SELECT a2.cus_id 
     FROM account a2, branch b2 
     WHERE a2.bra_code = b2.bra_code 
     GROUP BY a2.cus_id 
     HAVING COUNT(DISTINCT(b2.bra_code)) > 1 
    ) 
    AND c.cus_id = a.cus_id 
    AND a.bra_code = b.bra_code 
+0

これは、1つのブランチに1人の顧客につき1つのアカウントしか存在しないことを前提としています。 –

+0

@マークバニスターあなたは正しいです、私の答えを修正 – socha23

2

一つの答えは次のようなものかもしれません:

SELECT DISTINCT 
     C.CUS_ID, 
     (C.CUS_FIRST_NAME || ' ' || C.CUS_LAST_NAME) AS CUS_NAME, 
     C.CUS_IC, 
     C.CUS_ADDRESS, 
     C.CUS_POSTCODE, 
     C.CUS_CONTACT, 
     C.CUS_EMAIL, 
     C.CUS_AGE,  
     C.CUS_GENDER, 
     C.CUS_STATUS, 
     B.BRA_CODE, 
     B.BRA_ADDRESS, 
     B.BRA_POSTCODE, 
     R.REG_STATE, 
     R.REG_COUNTRY 
FROM CUSTOMER C, ACCOUNT A,BRANCH B, REGION R 
WHERE C.CUS_ID=A.CUS_ID AND 
     A.BRA_CODE=B.BRA_CODE AND 
     B.REG_ID=R.REG_ID AND 
     EXISTS (SELECT NULL FROM ACCOUNT O 
       WHERE A.CUS_ID = O.CUS_ID AND A.BRA_CODE <> O.BRA_CODE) 
関連する問題