DB2 SQL - 内部联接获取最后一行
DB2 SQL - Inner Join get last row
我正在尝试从 table @POA 获取最后一条记录,在 table HPOL07 中具有相同的 PO # 和 Line #。 @POA 中的记录有一个序列号。所以我试图获取最后一个序列号的记录。我不知道该怎么做?
EXEC SQL Declare RSCURSOR cursor for
SELECT HPOL07.*, @POA.*
FROM HPOL07
INNER JOIN @POA ON PORD = @POA.POAPON AND PLINE = @POA.POALNO
WHERE PORD = :NBR AND PID <> 'PZ';
EXEC SQL Open RSCURSOR;
EXEC SQL SET RESULT SETS Cursor RSCURSOR;
不敢发誓这适用于 DB2 400,但我认为它会。
SELECT HPOL07.*, @POA.*
FROM HPOL07
INNER JOIN @POA ON PORD = @POA.POAPON AND PLINE = @POA.POALNO
WHERE PORD = :NBR AND PID <> 'PZ'
ORDER BY @POA.<SEQUENCE NUMBER> DESC
FETCH FIRST 1 ROWS ONLY
此查询可用于获取 HPOL07 中的所有记录并匹配@POA 中的一条记录
SELECT HPOL07.*, @POA.*
FROM HPOL07
CROSS JOIN LATERAL (
SELECT @POA.*
FROM @POA
WHERE PORD = @POA.POAPON AND PLINE = @POA.POALNO
ORDER BY @POA.<SEQUENCE NUMBER> DESC
FETCH FIRST 1 ROWS ONLY
) @POA
WHERE PORD = :NBR AND PID <> 'PZ'
我正在尝试从 table @POA 获取最后一条记录,在 table HPOL07 中具有相同的 PO # 和 Line #。 @POA 中的记录有一个序列号。所以我试图获取最后一个序列号的记录。我不知道该怎么做?
EXEC SQL Declare RSCURSOR cursor for
SELECT HPOL07.*, @POA.*
FROM HPOL07
INNER JOIN @POA ON PORD = @POA.POAPON AND PLINE = @POA.POALNO
WHERE PORD = :NBR AND PID <> 'PZ';
EXEC SQL Open RSCURSOR;
EXEC SQL SET RESULT SETS Cursor RSCURSOR;
不敢发誓这适用于 DB2 400,但我认为它会。
SELECT HPOL07.*, @POA.*
FROM HPOL07
INNER JOIN @POA ON PORD = @POA.POAPON AND PLINE = @POA.POALNO
WHERE PORD = :NBR AND PID <> 'PZ'
ORDER BY @POA.<SEQUENCE NUMBER> DESC
FETCH FIRST 1 ROWS ONLY
此查询可用于获取 HPOL07 中的所有记录并匹配@POA 中的一条记录
SELECT HPOL07.*, @POA.*
FROM HPOL07
CROSS JOIN LATERAL (
SELECT @POA.*
FROM @POA
WHERE PORD = @POA.POAPON AND PLINE = @POA.POALNO
ORDER BY @POA.<SEQUENCE NUMBER> DESC
FETCH FIRST 1 ROWS ONLY
) @POA
WHERE PORD = :NBR AND PID <> 'PZ'