2012-04-27 65 views
0

UPDATE抱歉有混淆。 「表」不是我的實際表名,我用正確的名稱更新了它,並且還更多地瞭解了下面的錯誤信息。SQL查詢將重複項和總和結合起來

我有一個名爲TrackingNumbers的表,有兩列。將訂單列數據有時重複,因爲每階多重的出貨量(我沒有設計數據庫):

orderid shipment_cost 
1021 5.34 
1021 7.83 
1022 5.19 
1023 5.59 

如何添加所有shipment_cost值時,將訂單重複使用SQL查詢?所以我想查詢結果的樣子:

orderid shipment_cost 
1021 13.17 
1022 5.19 
1023 5.59 

我最好的猜測是,它是這樣的:

SELECT orderid, SUM(shipment_cost) FROM TrackingNumbers GROUP BY orderid 

但是,這給了我一個未指定S​​QL錯誤。不確定它是我的查詢還是愚蠢的專有應用程序。感謝您的任何建議!


更新2:所以它出現在我的查詢根據答案是確定的,我也只是反覆檢查自己的數據庫服務器上,回來確定。它必須是應用程序的錯誤(Volusion)。他們有一個蹩腳的小界面,用於運行自定義報告,它似乎是用額外的東西包裝我的SQL查詢。從Volusion錯誤:

SQL Error: SELECT * ,17041 as RecordCount 
      FROM (SELECT TOP 10 * 
       FROM (SELECT TOP 10 orderid, SUM(shipment_cost) 
         FROM TrackingNumbers 
         GROUP BY orderid ORDER BY) 
       SUBSEL ORDER BY) 
      PAGESEL ORDER BY 

如果我加一個ORDER BY像

SELECT orderid, SUM(shipment_cost) 
FROM TrackingNumbers 
GROUP BY orderid 
ORDER BY orderid ASC 

,因爲那是什麼,似乎它想:

SQL Error: SELECT * ,17041 as RecordCount 
      FROM (SELECT TOP 10 * 
       FROM (SELECT TOP 10 orderid, SUM(shipment_cost) 
         FROM TrackingNumbers 
         GROUP BY orderid 
         ORDER BY orderid ASC) 
       SUBSEL ORDER BY orderid DESC) 
      PAGESEL ORDER BY orderid ASC 

想我會看看有沒有Volusion的支持可以提供任何線索。再次感謝!


UPDATE3:當然Volusion支持是無益的,即使我告訴他們這個查詢工作的另一個SQL服務器上,很明顯他們的界面重整它。看起來像我將不得不將數據導入到我的數據庫並在那裏處理它。

+3

如果這是你準確的查詢,你需要逃避'table'因爲它是一個SQL關鍵字。 – 2012-04-27 06:05:56

+0

您的查詢對我來說確實很好,您的完整SQL錯誤是什麼?這可能是由其他原因引起的。 – Nick 2012-04-27 06:06:51

+1

@Nick:如果我正確理解OP,他們一定被阻止看到「愚蠢的專有應用程序」的完整錯誤信息。 – 2012-04-27 06:49:47

回答

2

我試圖與Northwind數據庫,在那裏我試着總結一下其中客戶ID的相等運費相同的查詢,

您可以在SQLFiddle

檢查同一我也糾正了查詢,現在它應該工作:

你只需要爲它取別名的最內選擇了和作爲SUM(shipment_cost) as Freight

SELECT * ,17041 as RecordCount 
    FROM(SELECT TOP 10 * 
     FROM(SELECT TOP 10 orderid, SUM(shipment_cost) as Freight 
      FROM TrackingNumbers 
      GROUP BY orderid 
      ORDER BY orderid ASC) 
     SUBSEL ORDER BY orderid DESC) 
    PAGESEL ORDER BY orderid ASC 
+0

對不起,混亂,表只是通用的,而不是我的實際表名。所以基本上你說的是我的查詢是正確的。它必須是應用程序的東西。 – reflexiv 2012-04-27 16:30:00

+0

@reflexiv請參閱編輯。 – Marshal 2012-04-28 05:44:09

+0

試圖在Volusion中運行時出現此錯誤: SQL錯誤:ORDER BY子句在視圖,內聯函數,派生表,子查詢和公用表表達式中無效,除非還指定了TOP或FOR XML。 TOP顯然是特定的,它在SQLFiddle中工作,所以不知道發生了什麼。 – reflexiv 2012-04-28 14:03:27

2

使用下面的查詢

SELECT orderid, SUM(shipment_cost) FROM [table] GROUP BY orderid 

table是一個SQL關鍵字

+0

對不起,混亂只是泛型而不是我的實際表名。所以基本上你說的是我的查詢是正確的。它必須是應用程序的東西。 – reflexiv 2012-04-27 16:29:02