2016-02-04 158 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)