首页 > 解决方案 > 选择一段时间内每天输入的最后一条记录

问题描述

@startDate我有以下查询,它返回给定日期范围(从到)每天输入的记录@EndDate

这就是我卡住的地方:我想获取每个透视列每天输入的最后记录,这样我就可以获得在开始日期和结束日期之间输入的所有最终记录的真实总和。

任何人都可以提供一些指导吗?我尝试了 MAX(TransDate) 但它不适用于这个特定的枢轴设置。这是生成的数据集的图片在此处输入图像描述

DECLARE @StartDate DATE = '06/21/2021',
        @EndDate DATE = '06/27/2021'
    
SELECT * 
FROM 
    (SELECT 
         h.StoreId, d.category, d.Qty, d.transdate
     FROM   
         tblHeader h 
     INNER JOIN 
         tblDetail d ON h.Storeid = d.Storeid 
                     AND h.DonationId = d.DonationId
     WHERE 
         d.TransDate BETWEEN @StartDate AND @EndDate) AS DnrCat 
PIVOT 
    (SUM(Qty) 
        FOR Category IN ([Daily Donors], 
                         [Textiles Hung], 
                         [Gaylord/Bulk IN],
                         [Gaylord/Bulk OUT], 
    ) AS Pvt

标签: sqlsql-serverssms

解决方案


推荐阅读