首页 > 解决方案 > 选择指定时间段内每个日期的最后记录值

问题描述

我有以下查询,假设返回给定日期范围内每天输入的最后金额。

内部查询本身可以正常工作,但是当我尝试对其进行 PIVOT 以便我可以将每个类别作为一列返回时,它不再显示最后一个条目,而是将每天输入的所有条目相加。

我认为数据透视函数所需的 SUM 聚合与内部查询结果相混淆,但我不知道如何欺骗它只给我内部查询重新调整的结果的总和。任何提示将不胜感激。

SELECT *
FROM   (SELECT d.UserId, d.Amount, d.category
        FROM Detail d
            INNER JOIN (
                 select MAX(transdate) as Max_Entry
                 from Detail
                 where TransDate between '06/21/2021' AND '06/27/2021'
                 group by TransDate 
                 ) AS LastRecord ON d.TransDate = LastRecord.Max_Entry
                            
         ) AS Cat
         
                    PIVOT ( 
                            SUM(Amount) -- this is what I think is nulling the max record
                         FOR  Category 
                         IN ( [textbooks], 
                              [harlines], 
                              [hours]) 
                     ) AS Pvt

标签: sql

解决方案


推荐阅读