You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何按日期和编号筛选多组数据的最后一行?

问题:分组展示标签数据的最新一条记录

打印标签时,我会把每条标签数据逐条存入数据库。现在需要在列表展示时,只显示每组数据按日期和编号排序后的最后一条记录,请问该如何实现?

我的初始SQL查询语句:

SELECT 
    lp.*, brc.BarcodeName, pr.PrinterName 
FROM 
    tbl_LabelPrint lp 
JOIN 
    tbl_Barcode brc ON lp.ProductNo = brc.ProductNo 
JOIN  
    tbl_Printer pr ON lp.IP = pr.IP 
WHERE  
    Date BETWEEN @Day AND @Day2 
ORDER BY 
    lp.SerialNo DESC

输出结果:

当前查询返回了多组重复的标签记录,每组包含多条历史数据,无法满足仅展示每组最新一条的需求。

更新说明:
我尝试获取各类数据分组后的最后一条记录,现已通过以下查询语句实现:

SELECT *, b.BarcodeName, p.PrinterName 
FROM (
    SELECT ProductNo, Number, IP, ToUser, FromUser, Time, Date, COUNT(*) AS sayi 
    FROM tbl_LabelPrint 
    GROUP BY ProductNo, Number, IP, ToUser, FromUser, Time, Date 
    HAVING COUNT(*) > 1
) tbl 
JOIN tbl_Printer p ON p.IP = tbl.IP 
JOIN tbl_Barcode b ON b.ProductNo = tbl.ProductNo 
WHERE Date BETWEEN @Day AND @Day2

内容的提问来源于stack exchange,提问作者enlsmase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 21:05:16