2014-10-17 126 views
0

我遇到的問題得到的銷售物品總數。下面的腳本顯示了總銷售額,但未總結。我得到它來總結它們,但它列出了重複的發票,所以我在invoice.no之前輸入「distinct」。我無法弄清楚我在搞什麼。請注意,我沒有以前的SQL培訓,在這裏我只讀到其他讀者的問題。請幫忙。提前致謝。添加總銷售額

SELECT DISTINCT 
    sh.invoice_no, sr.item_id, sr.item_desc, sr.last_sale, sr.SQ, 
    sr.DQ, sr.AQ, sr.VQ,sr.PQ, sr.iQOH, sr.avg_MAC, si.cost, 
    sr.PT, si.item_id AS Item, SUM(sh.qty_shipped) AS QTY_Shipped 
FROM iml_view_item_stock_review_nh as sr 
INNER JOIN p21_view_inventory_supplier as si ON sr.item_id = si.item_id 
INNER JOIN p21_sales_history_view as sh ON sr.item_id = sh.item_id 
WHERE (sr.item_id LIKE 'IEI%') 
    AND (sr.PT = 'R') 
    AND (sh.invoice_date > CONVERT(DATETIME, '2013-10-17 00:00:00', 102)) 
GROUP BY 
    sr.item_id, sr.item_desc, sr.last_sale, 
    sr.SQ, sr.DQ, sr.AQ, sr.VQ, 
    sr.PQ, sr.iQOH, sr.avg_MAC, si.cost, 
    sr.PT, si.item_id, sh.invoice_no 

下面是一個數據樣本。我省略了其他一些專欄。希望這可以幫助。

|invoice_no | item_id | QTY_Shipped | 
|-----------------------------------------| 
| 1000616 | IEI0803000F |  4  | 
| 1001289 | IEI0803000F |  2  | 
| 1018242 | IEI0803000F |  2  | 
| 1001224 |  IEI212I |  2  | 
| 1002265 |  IEI212I |  2  | 
| 1003547 |  IEI212I |  2  | 

預期輸出是一樣的東西:

| item_id | QTY_Shipped | 
|--------------|--------------| 
| IEI0803000F |  8  | 
| IEI212I |  6  | 

很抱歉,如果我沒有太多的知識。我的公司在1月份派我去接受培訓和認證,很快我會幫助其他人。提前致謝。

+0

爲什麼你按很多列分組 – radar 2014-10-17 22:10:57

+0

「select distinct」在該查詢中是完全多餘的,它什麼也不做,可能被忽略。在使用「group by」時,請勿使用「select distinct」 – 2014-10-17 22:11:03

+0

您的代碼看起來像是用於SQL Server,而不是MySQL。請問什麼數據庫? – 2014-10-17 22:12:19

回答

0

事實證明,我的查詢是正確的整個時間。我只是對這些數據感到震驚。

SELECT sr.item_id, sr.item_desc, sr.last_sale, sr.SQ, 
      sr.DQ, sr.AQ, sr.VQ,sr.PQ, sr.iQOH, sr.avg_MAC, 
      si.cost, sr.PT, si.item_id AS Item, SUM(sh.qty_shipped) AS QTY_Shipped 
FROM  iml_view_item_stock_review_nh as sr INNER JOIN 
      p21_view_inventory_supplier as si ON sr.item_id = si.item_id INNER JOIN 
      p21_sales_history_view as sh ON sr.item_id = sh.item_id 
WHERE  (sr.item_id LIKE 'IEI%') AND (sr.PT = 'R') AND 
      (sh.invoice_date > DATEADD(YEAR,-1,GETDATE())) 


GROUP BY   sr.item_id, sr.item_desc, sr.last_sale, 
        sr.SQ, sr.DQ, sr.AQ, sr.VQ, 
        sr.PQ, sr.iQOH, sr.avg_MAC, si.cost, 
        sr.PT, si.item_id