2016-04-03 14 views
0

Ich bin neu in SQL, und dies ist mein erstes SQL-Programm in meinem Leben. Ich möchte ein Programm machen, die Folgendes:SQL Hinzufügen und Subtrahieren von Daten aus zwei verschiedenen Tabellen

  1. Eine Tabelle, die die Aufzeichnung der Anzahl von Lasten hat, die ein Kunde in einer Woche geliefert, die Rate (gegen Gebühr) für jede Last zu liefern, die Versandgebühr.
  2. Eine weitere Tabelle, die Ausgaben, wie uns Treibstoff, Versicherung, Trailer mieten, etc. enthält
  3. Ich brauche die Gesamtsumme aller Ausgaben eines Kunden und die Summe aller Preise (verdientes Geld für jede Ladung), und dann subtrahieren Sie die Gesamtkosten von den gesamten Nettobezügen für jeden Kunden.

Hinweis:

QuickPay= Rate*0.05 
NetPay=Rate-(DispatchFee+QuickPay), 
TotalExpenses= Fuel+Advance+Insurance+Trailer 
FinalPay=NetPay-TotalExpenses 

Ich habe eine Abfrage für jede Tabelle erstellt, um die Berechnung zu machen, aber ich brauche alle in einer Abfrage zu kombinieren. Hier ist der Code für die Abfragen:

Abfrage für TblLInfo

SELECT CustName, sum(Rate) AS RateFee, sum(Disp_Fee) AS DispFee, sum(Rate*0.05) AS QuickPay, sum((Rate)-((Rate*0.05)+(Disp_Fee))) AS NetPay 
FROM TblLInfo 
GROUP BY CustName; 

Abfrage für TblExp

SELECT CustName, sum(Fuel) AS FuelFee, sum(Advance) AS AdvanceFee, sum(Insurance) AS InsuranceFee, sum(Trailer) AS TrailerFee, 
sum((Advance)+(Insurance)+(Trailer)+(Fuel)) AS TotalExp 
FROM TblExp 
GROUP BY CustName; 

Als ich versuchte, sie zu kombinieren, ist das Ergebnis 9 (3 * 3), Aufzeichnungen wie ich nur 3 Datensätze erwartet habe.

[TblLInfo (Tabelle Last Info) Für die wöchentliche Lasten Sammeln transportiert einen Kunden] [1]

[TblExp (Tabelle Aufwendungen), für für jeden Kunden wöchentliche Ausgaben zu sammeln] [2]

[Abfrage für TblLInfo, um die Summe aller Lasten tragen spezifischen Kunden und subtrahieren die Versandgebühr, so können wir die Nettobezüge erhalten] [3]

[Abfrage für TblExp, um Gesamtausgaben für bestimmte Kunden] [ 4]

! [Bildbeschreibung eingeben Ion hier] [1]

! [image description hier] [2]

Antwort

0
SELECT a.CustName,a.NetPay,b.TotalExp,(b.TotalExp-a.NetPay) AS overall_profit 
FROM 
(SELECT CustName, sum(Rate) AS RateFee, sum(Disp_Fee) AS DispFee, sum(Rate*0.05) AS QuickPay, sum((Rate)-((Rate*0.05)+(Disp_Fee))) AS NetPay FROM TblLInfo GROUP BY CustName) a 
INNER JOIN 
(SELECT CustName, sum(Fuel) AS FuelFee, sum(Advance) AS AdvanceFee, sum(Insurance) AS InsuranceFee, sum(Trailer) AS TrailerFee, sum((Advance)+(Insurance)+(Trailer)+(Fuel)) AS TotalExp FROM TblExp GROUP BY CustName)b 
+0

Es gibt mir, Syntaxfehler in der FORM-Klausel ein. Aber Dank –

+0

ich kombiniert die beiden Abfragen ich geschaffen habe, wie folgt: SELECT TblCusReg.Cust_ID, TblCusReg.Cust_Name, SqlQLoadInfo.WeekOf, SqlQLoadInfo.Rate, SqlQLoadInfo.DispFee, SqlQLoadInfo.QuickPay, SqlQLoadInfo.NetPay, SqlQExp.FuelFee , SqlQExp.AdvanceFee, SqlQExp.InsuranceFee, SqlQExp.TrailerFee, SqlQExp.TotalExp, [NetPay] - [TotalExp] AS FinalPay FROM (TblCusReg INNER JOIN SqlQExp ON TblCusReg.Cust_ID = SqlQExp.CustName) INNER JOIN SqlQLoadInfo ON TblCusReg.Cust_ID = SqlQLoadInfo.CustName; und es hat endlich funktioniert –

Verwandte Themen