[英]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.