2011-08-18 147 views
0
SELECT TOP 10 tb_show.showId, tb_Show.Title, tb_Show.PageName, Quantity 
FROM   tb_OrderItem INNER JOIN 
         (SELECT * FROM tb_Show WHERE IsDeleted = 0 AND PrivateShow = 0 AND Archive = 0) tb_Show 
         ON tb_OrderItem.ShowId = tb_Show.showId    
GROUP BY tb_show.showId, tb_Show.Title, tb_Show.PageName, Quantity 
ORDER BY Quantity DESC 
  • 160 dsadsadsadsa dsadsadsadsa
  • 160 dsadsadsadsa dsadsadsadsa
  • 150基於CSS的地圖測試基於事件的CSS-MAP-測試事件
  • 159橫鏤空測試橫鏤空測試

,但我不想重複ID,即160所以我做了它的子查詢,並得到僅有的三傢俱有DISTINCT關鍵字coloumns ..問題是由數量排序當我移動到它與子查詢DISTINCT不工作沒有它排序關鍵字是好的,但不同的關鍵字中移除排序...SQL分揀WITH GROUP ISSUE BY


SELECT DISTINCT TOP 10 showId, Title, PageName from 
(SELECT TOP 10 tb_show.showId, tb_Show.Title, tb_Show.PageName, Quantity 
FROM   tb_OrderItem INNER JOIN 
         (SELECT * FROM tb_Show WHERE IsDeleted = 0 AND PrivateShow = 0 AND Archive = 0) tb_Show 
         ON tb_OrderItem.ShowId = tb_Show.showId    
GROUP BY tb_show.showId, tb_Show.Title, tb_Show.PageName, Quantity 
ORDER BY Quantity DESC) tb_show 
  • 150基於CSS的地圖測試基於事件的CSS-MAP-測試事件
  • 159個跨空洞測試跨凹陷測試
  • 160 dsadsadsadsa dsadsadsadsa

回答

2

這將使你在你的第二個例子的輸出。不同的子查詢不適合你的原因是因爲你也按數量分組,導致分開的不同行被輸出。

SELECT TOP 10 tb_show.showId, tb_Show.Title, tb_Show.PageName, MAX(quantity) as Quantity 
FROM tb_OrderItem 
    INNER JOIN tb_Show 
     ON tb_OrderItem.ShowId = tb_Show.showId 
WHERE tb_show.IsDeleted = 0 AND tb_show.PrivateShow = 0 AND tb_show.Archive = 0 
GROUP BY tb_show.showId, tb_Show.Title, tb_Show.PageName 
ORDER BY MAX(quantity) 
+0

不,但我想按照第一個例子排序...因爲大多數銷售數量應該是第一。 –

+0

我已更新我的示例以包含銷售量最高的數量。 –

+0

我想按數量排序,我的第二個例子工作正常,如果我刪除不同的關鍵字,但它仍然重複行,但因爲我放置不同的關鍵字,它刪除排序 –