SELECT* from (
SELECT distinct tsn.id stockId,
tsi.storage_user_name lastInUserName,
cast( tsn.id AS CHAR ) id
FROM
INNER JOIN tdm_stock_in_head tsi ON tsi.stock_in_code in(
SELECT
in_out_id
FROM
tdm_stock tb
WHERE
AND tb.is_delete = 0
AND tsi.is_delete = 0
AND tsi.audit_status = 1
AND in_out_id LIKE 'R%'
group by in_out_id
)
ORDER BY tsi.storage_time DESC) tmp
group by tmp.stockId
我圈出了实现的关键步骤:
实现步骤实际比较简单:现在内部使用distinct关键字对库存id等多列去重(实际上几乎去不掉数据,时间一般不同,但是他会排序(指的是加order by后的排序结果能影响到group by)),外加一个时间降序排序,解决了group by 无法排序的问题
此时再包一个select * 并group by 就能达到效果了
大家踊跃实践呀!加油
这篇关于库存生产-实用sql知识:如何在保证去重分组的情况下获取组内最新数据(可按时间排序),distinct +group by +嵌套结果 的联合妙用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!