2016-06-24 3 views
1

私は、銀行のシナリオで特定の従業員がサービスを提供している顧客の数を一覧表示するクエリを作成しています。SQL Server:結合による複数のカウント

テーブルはこのように設計されています:

Table Design

次のクエリは、私が単独で必要とする結果を生む:

SELECT 
    EMPID, COUNT(EMPID) AS 'Customers Served' 
FROM 
    Financial.AccountOperations 
GROUP BY 
    EMPID; 

SELECT 
    EMPID, COUNT(EMPID) AS 'Customers Served' 
FROM 
    Financial.LoanOperations 
GROUP BY 
    EMPID; 

Query Results

私はにクエリを結合しようとしています1。私はUNIONINTERSECTJOIN、およびサブクエリを成功させずに使ってみました。

誰でもお手伝いできますか?

所望の出力は次のようになります。

EMPID   Customers Served 
    2    2 
    3    3 
    4    17 
    5    16 
    7    2 
    8    4 
    9    8 
    10    5 
    12    1 
    15    1 
+0

'combine'はどういう意味ですか?一致する従業員にCOUNTを追加しますか?または出力をマージしますか? – techspider

+0

希望する出力の例を示してください。 –

+0

希望の出力を追加しました、ありがとう! –

答えて

2

と思う - だけをもう一度それを実行してください:

SELECT EMPID, Sum([Customers Served]) AS NumServed FROM 
(SELECT EMPID,COUNT(EMPID) AS 'Customers Served' 
FROM Financial.AccountOperations 
GROUP BY EMPID 
UNION 
SELECT EMPID,COUNT(EMPID) AS 'Customers Served' 
FROM Financial.LoanOperations 
GROUP BY EMPID) 
GROUP BY EMPID 
+0

あなたは天才です。これは完全に機能しました。毎日ありがとう! –

+0

あなたはすでに正しいアイデアを持っていました - @Hoganにupvote – dbmitch

+0

ありがとうdbmitch - 私は総会を必要とする部分を見なかったので、私は会議に行っていました。あなたはupvoteを取得する必要があります:D – Hogan

2

あなたはこれを試していました:

SELECT EMPID,COUNT(EMPID) AS 'Customers Served' 
FROM Financial.AccountOperations 
GROUP BY EMPID 

UNION 

SELECT EMPID,COUNT(EMPID) AS 'Customers Served' 
FROM Financial.LoanOperations 
GROUP BY EMPID; 

私は@Hoganがそれを持っていると思う。この

SELECT 'Account' AS Source, EMPID,COUNT(EMPID) AS 'Customers Served' 
FROM Financial.AccountOperations 
GROUP BY EMPID 

UNION ALL 

SELECT 'Loan' AS Source, EMPID,COUNT(EMPID) AS 'Customers Served' 
FROM Financial.LoanOperations 
GROUP BY EMPID; 
+0

ねえ!応答していただきありがとうございます。私ははい、しかし、私はそれが1つの行にする必要があるとき両方のテーブルに存在するempidsの複数の行で結果が戻ってくる。たとえば、EMPID 4は17人の顧客にサービスを提供していますが、9と8を区別して2行に戻ってきます –

関連する問題