繁体   English   中英

从 SQL 服务器中的 MAX(Date) 行获取值

[英]Getting value from MAX(Date) Row in SQL Server

我正在尝试通过使用 MAX function 获得物品的最后一个供应商。 我想要实现的是显示所有库存项目的 MAX(Date) 行的供应商名称(如下所示为帐户链接)。

我正在使用的代码为同一个帐户链接显示多个日期,我正在努力寻找原因。 我的代码是:

SELECT 
  MAX(TxDate) AS Date,
  ST.AccountLink,
  V.Account AS Supplier 

FROM _bvSTTransactionsFull AS ST 
  JOIN Vendor V on ST.DrCrAccount = V.DCLink

WHERE Module = 'AP' 
AND Id = 'OGrv'
GROUP BY ST.AccountLink, V.Account
ORDER BY AccountLink

但我的结果如下所示

在此处输入图像描述

试试这个

select AccountLink,Supplier,date from(SELECT 
ST.AccountLink,
V.Account AS Supplier,
TxDate as [date],
row_number()over(partition by ST.AccountLink order by TxDate desc)rownum

FROM _bvSTTransactionsFull AS ST 
  JOIN Vendor V on ST.DrCrAccount = V.DCLink

WHERE Module = 'AP' 
AND Id = 'OGrv')t
where t.rownum = 1

group by 已被删除和排名 function 用于实现 output

您需要对最后一个供应商 select 的简单子查询。

    select X.supplier as LastSupplier, X.Date as lastDate,  X.AccountLink
    from _bvSTTransactionsFull X 
    where X.Date = (select max(date) 
                    from _bvSTTransactionsFull Y 
                    where Y.AccountLink=X.AccountLink)

子查询提取任何 accountLink 的最后日期,因此您可以在外部 where 条件中使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM