2016-03-09 55 views
-1

我在查找庫存數據庫中特定客戶的總金額。 表是: 客戶,稅收,發票,LINE_NO,分公司,項目,員工在SQL中查找客戶的總金額

我能計算出總的,但我得到多數量,因爲它計算數據庫中的每個稅率的金額。我試圖限制數量取決於分支問題。我希望我明確,這裏是查詢:

SELECT ROUND((SUM((LINE_NO.RETAIL_PRICE - LINE_NO.DISCOUNT)* LINE_NO.DEL_QTY)* (TAX.TAX_RATE))+ 
SUM((LINE_NO.RETAIL_PRICE - LINE_NO.DISCOUNT)* LINE_NO.DEL_QTY),2) 
AS "TOTAL PAYMENT" 
FROM LINE_NO, TAX, BRANCH 
WHERE LINE_NO.INVOICE_INVOICE_NO IN (SELECT INVOICE.INVOICE_NO from INVOICE 
WHERE(INVOICE.CUSTOMER_CUST_NO IN (SELECT CUST_NO from CUSTOMER where CUSTOMER.FNAME='JIM'))) 
AND TAX.CITY = BRANCH.CITY 
GROUP BY TAX.TAX_RATE; 
+0

我知道你不想爲每個稅率的結果,但那麼必須有一些條件來明確適用哪種稅率。你知道其中一個記錄是否與某一特定費率有關?準確地說是 –

+0

。是,可以從分支機構位置檢索費率,可以通過發票號碼進行跟蹤。所以我在'AND TAX.CITY = BRANCH.CITY'之後添加了另一個查詢,這有助於確定我正在查找的稅率並得到它的工作,謝謝反正。 – Muhsag

回答

0

GROUP BY不應該在TAX_RATE這裏操作,以避免計算每個組的總金額(TAX_RATE)。

SELECT ROUND((SUM((LINE_NO.RETAIL_PRICE - LINE_NO.DISCOUNT)* LINE_NO.DEL_QTY)* (TAX.TAX_RATE))+ 
SUM((LINE_NO.RETAIL_PRICE - LINE_NO.DISCOUNT)* LINE_NO.DEL_QTY),2) 
AS "TOTAL PAYMENT" 
FROM LINE_NO, TAX, BRANCH 
WHERE LINE_NO.INVOICE_INVOICE_NO IN (SELECT INVOICE.INVOICE_NO from INVOICE 
WHERE(INVOICE.CUSTOMER_CUST_NO IN (SELECT CUST_NO from CUSTOMER where CUSTOMER.FNAME='JIM'))) 
AND TAX.CITY = BRANCH.CITY; 
+0

沒有工作,但沒關係,我想出了它的感謝 – Muhsag

0

確切地說。是,可以從分支機構位置檢索費率,可以通過發票號碼進行跟蹤。所以我說另一個查詢後:

AND TAX.CITY = BRANCH.CITY 

這有助於確定稅率我正在尋找和得到它的工作,感謝反正