Sql 获取上次交易日期的最后数据

Sql 获取上次交易日期的最后数据,sql,sql-server,tsql,sql-server-2008,sql-server-2008-r2,Sql,Sql Server,Tsql,Sql Server 2008,Sql Server 2008 R2,我有一个需要显示最后一个事务数据行的事务表。 这是表格: Table Name : Product_detail_trx Trans_date; Prod_Code; Outlet_code; Qty; Prev_bal_qty; 2020-02-26; SKU1; CNGI; 2; 1; 2020-02-20; SKU1; CNGI; -3; 4; 2020-02-29; SKU1;

我有一个需要显示最后一个事务数据行的事务表。 这是表格:

Table Name : Product_detail_trx

Trans_date;  Prod_Code;  Outlet_code;   Qty;   Prev_bal_qty;
2020-02-26;  SKU1;       CNGI;          2;       1;
2020-02-20;  SKU1;       CNGI;         -3;       4;
2020-02-29;  SKU1;       CNGI;          5;       3;
我想得到最后一个交易日期,包括数量和上一个余额数量之和

数据必须如下所示:

Trans_date Outlet_Code Qty_Total  Prev_bal_qty
2020-02-29; CNGI;        4;          3;
我试着

select Max trans_date, sum (qty) as total_qty, prev_bal_qty
group by prod_code, outlet_code, prev_bal_qty

但它不在组中显示。

您可以使用窗口功能:

select trans_date, outlet_code, qty_total, prev_bal_qty
from (
    select
        p.*,
        sum(qty) over() total_qty,
        row_number() over(order by trans_date desc) rn
    from product_detail_trx p
) p
where rn = 1

内部查询按降序日期对记录进行排序,并计算总数量。外部查询在顶部记录上进行筛选。

欢迎使用堆栈溢出!请阅读文章的前几段,并相应地回答您的问题。