2016-12-14 4 views
-1

Wie verwende ich die Ansicht, die ich erstellt habe, um verschiedene Datenausgaben zu erhalten. Ich habe die View VJobCustomerLaborCost erstellt. Diese Ansicht gibt jedem Job für jeden Kunden Gesamtarbeitskosten für jeden Job. Ich muss jeden Kunden mit Gesamtarbeitskosten für jeden Kunden erhalten. Ich habe die View- und Sample-Ausgaben gegeben.So erstellen Sie eine Abfrage mithilfe einer Ansicht

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 

Dies ist die Ausgabe aus meiner Sicht. Das gibt mir alle Kunden und jede Arbeitsplätze Gesamtarbeits

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 

kosten Was ich brauche, ist die Ansicht zu verwenden, erstellt für jeden Kunden den gesamten Arbeitskosten zu erhalten. So wäre der Ausgang

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

Wie verwende ich die obige Ansicht, um diese Ausgabe zu bekommen?

+1

Wenn Sie bereits die Daten geknirscht haben, indem sie in einer Ansicht gruppieren, haben Sie verloren gegangene Daten, so dass Sie nicht bekommen eine andere Analyse, wenn Daten aus der Tabelle benötigt werden, die Sie nicht mehr sehen können. In diesem Fall klingt es so, als wollten Sie nur die Kosten pro Kunde zusammenfassen, also gruppieren Sie einfach nach Kunden-ID und "SUM" die Kosten. – Charleh

+0

Wie ich in Ihrem früheren Beitrag vorgeschlagen habe .... und ein Beispiel zur Verfügung gestellt ... Sie müssen wirklich aufhören, diese antiquierte Joinsyntax zu verwenden. Wie du gesagt hast, lernst du immer noch. Es ist nicht zu spät, diese schlechte Syntax, die dein Professor dir gegeben hat, zu verlernen. –

+0

Ich stimme nicht zu, aber so will er, dass wir die Arbeit machen. Er sagt, wir werden im nächsten Kurs auf die neue Syntax wechseln. Ich habe damit herumgespielt, damit ich mich an die neue Syntax gewöhnen kann. Danke für die Beratung. –

Antwort

2

Es sieht aus wie Sie gerade Gruppe benötigen und Ihre Daten zusammenzufassen:

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

Wow, das war schmerzlos. Ich war weit darüber hinweg, es zu denken. Vielen Dank! –

Verwandte Themen