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
相关产品推荐
相关产品推荐

