2015-01-21 94 views
0

我想运行一个将生成聚合结果的查询。 我有以下查询评估价格列和件列以产生一个结果。见下文:SQL Server使用评估子查询分组的外部查询

Select Case When [Price]/[PIECES] < 10 Then 'Low Value' 
      Else 
     Case When [Price]/[PIECES] >= 10 Then 'High Value' 
      End 
     End 
AS [High/Low] 
FROM [tbl1] 

然后我想利用上述查询(代从上方在下面查询列的[一块高/低价值]查询中的值)的结果,并且通过聚合数据[高/低按价值]。见下:

SELECT [High/Low Value by Piece], Sum([Pieces]) as Pieces, Sum([Price]) as Price 
FROM [tbl1] 
Group by [High/Low Value by Piece] 
Order by [High/Low Value by Piece] 
+1

什么阻止你? – 2015-01-21 03:28:57

回答

0

您的case语句有太多的语法错误。修好后,你可以直接使用case声明selectgroup by这样的东西。

SELECT CASE 
     WHEN [Price]/[PIECES] < 10 THEN 'Low Value' 
     WHEN [Price]/[PIECES] >= 10 THEN 'High Value' 
     END   AS [High/Low], 
     Sum([Pieces]) AS Pieces, 
     Sum([Price]) AS Price 
FROM [tbl1] 
GROUP BY CASE 
      WHEN [Price]/[PIECES] < 10 THEN 'Low Value' 
      WHEN [Price]/[PIECES] >= 10 THEN 'High Value' 
      END 
+0

嗨NoDisplayName,这工作很好,看起来很直截了当。非常感谢。这会导致3秒钟内访问需要34秒。 – FredA 2015-01-21 19:13:06