2016-05-19 8 views
-2

これまでのところ、私は、顧客を顧客と接続している従業員のリストとその数を持っています。テーブル値の結合

SELECT Employee.FirstName || ' ' || Employee.LastName AS 'Employee Name' 
, COUNT(SupportRepID) AS 'No. Of Accounts' 
FROM Employee 
Join Customer 
On Customer.SupportRepID = Employee.EmployeeID 
Group By EmployeeID 

最後の出力は私が望むもので、これは各従業員の請求書からの総収益です。これは、従業員に割り当てられたすべての顧客の総請求額を数えるために、各顧客の合計請求書を数えなければならないことを意味します。私は漠然とした考えを持っていますが、私は何かアドバイスをいただければ幸い非常によくテーブルを結合する方法がわからない

SELECT InvoiceID 
FROM Invoice 
GROUP BY CustomerID 

:私は下に各顧客の請求書を数えました。

+1

あなたのコードは意味がありません。再現可能なデータスニペットを与えることはできますか? –

答えて

0

"Invoice Value"クエリがどのように機能するのかわからないので、ここでいくつかの推測をしています。そのため、欠落していると仮定しました。基本的には、元のクエリにインボイスバリュークエリを追加して、結果をマージすると思いますか?

これが事実であるなら、あなたはこのように、サブクエリを使用することができます:私はあなたの「請求書バリュー」クエリのロジックを変更して、私が何を推測を取らなければならなかったことを

SELECT 
    e.Employee.FirstName || ' ' || e.Employee.LastName AS 'Employee Name', 
    COUNT(c.SupportRepID) AS 'No. Of Accounts', 
    SUM(i.InvoiceValue) AS 'Value Of Invoices' 
FROM 
    Employee e 
    INNER JOIN Customer c ON c.SupportRepID = e.EmployeeID 
    LEFT JOIN (
     SELECT 
      CustomerID, 
      SUM(InvoiceValue) AS InvoiceValue 
     FROM 
      Invoice 
     GROUP BY 
      CustomerID) i ON i.CustomerId = c.CustomerId 
GROUP BY 
    e.EmployeeID 

注意列は値を保持する可能性があります。

関連する問題