2016-12-14 12 views
-1

作成したビューを使用して、さまざまなデータ出力を取得する方法を教えてください。ビューVJobCustomerLaborCostを作成しました。このビューでは、各顧客の各ジョブに、各ジョブの合計人件費が割り当てられます。私は各顧客に、各顧客の総人件費を払う必要があります。私はビューとサンプル出力を与えました。ビューを使用してクエリを作成する方法

GO 
CREATE VIEW VJobCustomerLaborCost 
AS 
SELECT DISTINCT 
    TJ.intJobID 
    ,TJ.strJobDescription 
    ,TC.intCustomerID 
    ,TC.strLastName + ', ' + TC.strFirstName AS strCustomerName 
    ,SUM(TJE.intHoursWorked * TE.monHourlyRate) AS monTotalLaborCost 
FROM  
    TJobs   AS TJ 
    ,TJobCustomers AS TJC 
    ,TCustomers  AS TC 
    ,TJobEmployees AS TJE 
    ,TEmployees  AS TE 
WHERE 
     TJ.intJobID   = TJC.intJobID 
    AND TJC.intCustomerID = TC.intCustomerID 
    AND TJ.intCustomerID = TJC.intCustomerID 
    AND TJE.intJobID  = TJ.intJobID 
GROUP BY 
    TJ.intJobID 
    ,TJ.strJobDescription 
    ,TC.intCustomerID 
    ,TC.strLastName 
    ,TC.strFirstName 
GO 

これは私の見解からの出力です。これは私にすべての顧客を与え、各ジョブは、労働は、私は各顧客の総人件費を得るために作成したビューを使用することです必要なもの

intJobID  strJobDescription   intCustomerID  strCustomerName  monTotalLaborCost 
----------- ------------------------- ------------------- ----------------- --------------------- 
1   Kitchen Remodel     1    Belcher, Bob    8740.00 
8   Basement Remodel    1    Belcher, Bob    13300.00 
9   Bathroom Remodel    1    Belcher, Bob    12065.00 
10   Roof Replacement    1    Belcher, Bob    3325.00 
11   Living Room Remodel    1    Belcher, Bob    0.00 
3   Bedroom Remodel     3    Parker, Peter    3800.00 
6   Roof Replacement    3    Parker, Peter    0.00 
7   Basement Remodel    3    Parker, Peter    1710.00 
4   Bedroom Remodel     4    Solo, Hans    2850.00 
5   Basement Remodel    2    Stark, Tony     0.00 

の費用合計します。出力は

intCustomerID  strCustomerName  monTotalLaborCost 
------------------- ----------------- --------------------- 
    1    Belcher, Bob    37,430 
    3    Parker, Peter    5,510 
    4    Solo, Hans     2,850 
    2    Stark, Tony     0.00 

この出力を得るにはどうすればよいですか?

+1

すでにビューでグループ化したデータをクランチしている場合、あなたはデータを失ってしまったので、あなたが得ることができませんあなたがもはや見ることができないテーブルからのデータが必要な場合は、別の分析。しかし、この例では、顧客あたりのコストを合計したいだけなので、顧客IDごとにグループ化し、コストを「SUM」とするように思えます。 – Charleh

+0

私はあなたの前の投稿で示唆したように、そして例を提供しました...あなたは本当にこの古くなった結合構文の使用を止める必要があります。あなたが言ったように、あなたはまだ学んでいます。あなたの教授があなたに与えたこの貧弱な構文を知らせるのは遅すぎることではありません。 –

+0

私は同意しませんが、これは彼が私たちに仕事を返すことを望んでいる方法です。彼は次のコースで新しい構文に切り替えようとしています。私はそれを使って遊んできましたので、私は新しい構文を使用することに慣れることができます。アドバイスありがとう。 –

答えて

2

あなただけのグループに必要とあなたのデータを合計のように見えます:

select 
    intCustomerID, 
    strCustomerName, 
    sum(monTotalLaborCost) as monTotalLaborCost 
from VJobCustomerLaborCost 
group by intCustomerID, strCustomerName 
+0

うわー、それは無痛だった。私はそれを考え直す方法だった。ありがとう! –

関連する問題