2015-02-06 85 views
0

我有一個查詢,它返回關於股票的信息,查詢的作品,但你可以在下面的圖片中看到有一些重複。我希望它在圖像中顯示,但不是重複我只希望它顯示具有最新日期的行。只顯示最近的日期的記錄

SELECT  TOP (100) PERCENT STOCK_CODE, TRANS_DATE, STOCK_QTY, DESCRIPTION, DETAIL 
FROM   Tencia.dbo.STK_TRANS 
WHERE  (TRANS_TYPE = N'STADJ') AND (STOCK_CODE LIKE 'LL%') AND (DESCRIPTION LIKE 'stock%') OR 
         (DESCRIPTION LIKE '%stk count%') 
GROUP BY STOCK_CODE, TRANS_DATE, STOCK_QTY, DESCRIPTION, DETAIL 
ORDER BY STOCK_CODE, TRANS_DATE DESC 

enter image description here

回答

0

你可以通過做ROW_NUMBER()

;WITH CTE AS(
    SELECT 
     *, 
     rn = ROW_NUMBER() OVER(PARTITION BY STOCK_CODE ORDER BY TRANS_DATE DESC) 
    FROM Tencia.dbo.STK_TRANS 
    WHERE 
     (TRANS_TYPE = N'STADJ') 
     AND (STOCK_CODE LIKE 'LL%') 
     AND (DESCRIPTION LIKE 'stock%') 
     OR (DESCRIPTION LIKE '%stk count%') 
) 
SELECT 
    STOCK_CODE, 
    TRANS_DATE, 
    STOCK_QTY, 
    DESCRIPTION, 
    DETAIL 
FROM CTE 
WHERE rn = 1 

你肯定你的WHERE條款?是不是應該是這樣的:

WHERE 
     TRANS_TYPE = N'STADJ' 
     AND STOCK_CODE LIKE 'LL%' 
     AND (
      DESCRIPTION LIKE 'stock%' 
      OR DESCRIPTION LIKE '%stk count%' 
     ) 
+0

該查詢不起作用SQL Magement Studio拋出錯誤,我試圖通過這種方式使視圖。 – SnakeByte 2015-02-06 01:28:04

+0

什麼是錯誤? – 2015-02-06 01:29:07

+0

它說,查詢不能用圖形表示,我認爲這是因爲我想製作一個視圖,這將顯示在Excel電子表格中。 – SnakeByte 2015-02-06 01:32:03