gpt4 book ai didi

sql - 如何根据创建标识符和最大日期的两列选择行

转载 作者:行者123 更新时间:2023-12-02 02:10:36 24 4
gpt4 key购买 nike

我有六列。我自己创建的六个专栏之一。它是两个列放在一起以创建标识符列。我只想为标识符列的每个不同组合选择最大日期行。当我省略数量列时,我得到了预期的行数。但是,一旦我添加了数量,它就会给出我不期望的行。如何为我的标识符列的每次不同出现仅选择最大日期行?

例如,当我运行这个查询时...

Select 
Distinct(L.ItemNo+' 'L.Lot) as Identifier
,Max(L.PostingDate)
,L.ItemNo
,L.Description
,L.Quantity
,L.Lot
From dbo.JournalLine L
Groupy by
L.ItemNo
,L.Lot
,L.Description
,L.Quantity

我得到以下结果。我没想到的是有 45 个苹果的那一行。

<表类="s-表"><头>标识符发布日期项目编号描述数量很多<正文>I123 LOT1232021-06-01I123 celery 79L123I456 LOT4562021-06-01I456胡萝卜25L456I456 LOT6542021-06-01I654胡萝卜21L654I789 LOT7892021-05-28I789苹果45L789I789 LOT7892021-06-01I789苹果38L789I789 LOT5552021-06-01I789苹果11L555

最佳答案

使用窗口函数MAX()FIRST_VALUE()分别获取PostingDateQuantity的值具有最新 PostingDate 的行:

SELECT DISTINCT
ItemNo + ' ' + Lot AS Identifier,
MAX(PostingDate) OVER (PARTITION BY ItemNo, Lot, Description) AS PostingDate,
ItemNo,
Description,
FIRST_VALUE(Quantity) OVER (PARTITION BY ItemNo, Lot, Description ORDER BY PostingDate DESC) AS Quantity,
Lot
FROM dbo.JournalLine

关于sql - 如何根据创建标识符和最大日期的两列选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67792647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com