我正在尝试确定 SQL Server 中产品的第一个条目。该表是 JDE 更新的日志,添加时的记录状态为 A。
我们的产品被分组,我们对不同批次的相同产品有许多代码。无论批次如何,产品代码的前 19 个字符都是相同的。
样本数据:
只有粗体行是我要返回的记录,因为这是该 First19 代码的第一个条目。
这是我放在一起的 SQL(请原谅日期的混乱,这是我必须做的,以使其成为 JDE 如何存储日期的真实日期):
SELECT DATEADD(DAY,CONVERT(INT,RIGHT(F4101Z1.SZUPMJ,3))-1,DATEADD(YEAR,CONVERT(INT,LEFT(F4101Z1.SZUPMJ,3)),'01/01/1900')) Modified_Date,
F4101Z1.SZTNAC Record_Status,
F4101Z1.SZLITM,
LEFT(F4101Z1.SZLITM,19) First19
FROM ODS.PRODDTA.F4101Z1 F4101Z1
LEFT OUTER JOIN (
SELECT LEFT(SZLITM,19) First19
FROM ODS.PRODDTA.F4101Z1
WHERE DATEADD(DAY,CONVERT(INT,RIGHT(SZUPMJ,3))-1,DATEADD(YEAR,CONVERT(INT,LEFT(SZUPMJ,3)),'01/01/1900')) = '11/12/2020'
) F4101Z1_2 ON LEFT(F4101Z1.SZLITM,19) = First19
WHERE F4101Z1_2.First19 IS NULL
AND F4101Z1.SZTNAC = 'A'
代码返回所有 3 个结果,这不是我所期望的,我只期望粗体条目。
我实际上想在那里设置一个日期标准,这样我就可以将它纳入我为前一天运行的报告中。基本上是为了展示已经创建的任何新产品,它们是真正的新产品,现在是新批次。