【发布时间】:2021-11-04 12:39:28
【问题描述】:
我正在使用下面的代码为每个项目提取日期/序列中的最新记录,每个项目一行。我发现的问题是我认为我需要优先考虑日期作为 MAX,然后计算最大序列。第二个表显示了我对项目 5356262(和其他一些)遇到的问题,这个 sku 没有将任何数据拉入查询...我相信因为最大 SEQ 与最大 SEQ 位于不同的行日期,所以它变得混乱?
任何帮助将不胜感激。谢谢。
一般数据示例:
| item | exdt | seq | M | L |
|---|---|---|---|---|
| 35435353 | 6/2/2021 | 3 | $52 | $15 |
| 64363663 | 5/24/2021 | 1 | $33 | $5 |
| 75474747 | 7/24/2021 | 2 | $13 | $3 |
问题示例(尝试仅获取 2021 年 7 月 24 日的记录)。
| item | exdt | seq | M | L |
|---|---|---|---|---|
| 5356262 | 6/2/2021 | 3 | $52 | $15 |
| 5356262 | 5/24/2021 | 1 | $33 | $5 |
| 5356262 | 7/24/2021 | 1 | $13 | $3 |
SELECT *
(SELECT item, cpp, exdt, seq, tvt_1 + tft_1 AS ttot_1
FROM dbo.sample123) AS p
PIVOT (SUM(ttot_1) FOR cpp IN ([M], [L], [OH]])) AS pvtc
WHERE (exdt =
(SELECT MAX(exdt) AS exdtmax
FROM dbo.sample123 t2
WHERE (LTRIM(t2.item)=LTRIM(pvtc.item))))
AND (seqn =
(SELECT MAX(seq) AS seqmax
FROM dbo.sample123 AS t2
WHERE LTRIM(t2.item)=LTRIM(pvtc.item)))
【问题讨论】:
-
如果您使用Tour 并阅读How To Ask,然后edit 您的问题以及创建a Minimal, Reproducible Example 所需的详细信息,您将在这里获得更好的体验。有关提示,请参阅 How to post a T-SQL question on a public forum。
标签: sql sql-server tsql max