2015-01-21 91 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