2016-02-04 153 views
-1

我有一個表庫存活動,其中有多個記錄附有單個item_id。 note註釋item_id在股票活動表中正在扮演外鍵角色。所以實際上我正在跟蹤庫存的項目(進出)。現在我想要檢索表中存儲的最後一條記錄活動。我寫這應該是返回從表中的最後一個記錄,但它返回的第一條記錄的查詢..sql order by not only with group by by only

欄目有: ACTIVITY_ID PK ITEM_ID FK 平衡INT(11)

這裏我的查詢:

SELECT DISTINCT(item_id),balance 
FROM `stock_activity` 
GROUP BY (item_id) 
ORDER BY(activity_id) DESC 
+1

你在期待GROUP BY做什麼?您沒有針對您的數據運行任何彙總。另外,請不要發佈查詢圖片。將查詢內容作爲文本粘貼到問題中。 – Siyual

+0

我只想要一個記錄意味着一個項目的最後一行 –

+0

你可以在第二個最後一個記錄中看到我有2個記錄,所以我使用命令獲得只有一個記錄沒有重複項目記錄 –

回答

1

請記住,如果沒有任何類型的聚合引用不屬於分組鍵的列,那麼這樣的語句是不可能的。所以請記住一個小公式來解決我們的這個問題。

SELECT * FROM 
    (
    SELECT * FROM `table` 
    ORDER BY AnotherColumn 
    ) t1 
    GROUP BY SomeColumn 
    ; 

修改您的查詢,並希望它能正常工作!

SELECT * FROM(
SELECT DISTINCT(item_id),balance 
FROM `stock_activity` 

ORDER BY(activity_id) DESC 
) t1 
GROUP BY (item_id)