2012-04-27 41 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