记录不是从EQUI中选取的
Records are not selected from EQUI
我目前正在开发一个需要 EQUI table 所有设备的应用程序。当我通过 SE11 查看 table 时,有 225 个条目。
当我尝试通过功能模块 select 设备时,我得到了非常不同的结果。
SELECT E~EQUNR, E~EQART, I~BEBER, Q~IWERK, I~TPLNR, K~EQKTX, K~SPRAS, E~GERNR, X~PLTXT
FROM EQUI AS E
INNER JOIN EQKT AS K ON K~EQUNR EQ E~EQUNR
INNER JOIN EQUZ AS Q ON Q~EQUNR EQ E~EQUNR
INNER JOIN ILOA AS I ON I~ILOAN EQ Q~ILOAN
INNER JOIN IFLOTX AS X on X~TPLNR EQ I~TPLNR
WHERE E~EQUNR LIKE @P_EQUNR
AND I~BEBER LIKE @P_BEBER
AND I~TPLNR LIKE @P_TPLNR
AND Q~IWERK LIKE @P_IWERK
AND E~GERNR LIKE @P_GERNR
AND K~SPRAS EQ @IV_SPRAS
AND X~SPRAS EQ @IV_SPRAS
INTO TABLE @ET_EQUIPS.
当我用这个 select 语句查询它们时,我确实得到了与 EQUI table 相同数量的结果,但没有我需要的其他数据。
SELECT E~EQUNR, E~EQART
FROM EQUI AS E
INNER JOIN JEST AS J ON J~OBJNR EQ E~OBJNR
INNER JOIN TJ02T AS T on T~ISTAT EQ J~STAT
WHERE INACT NE 'X'
AND J~STAT NE 'I0320'
AND J~STAT NE 'I0076'
INTO TABLE @ET_EQUIPS.
对于如何使用所有其他数据也获得相同数量的结果有什么帮助吗?
通常当您的某些条件不满足或记录集未出现在其中一个连接表中时,就会发生这种情况。尝试使用 LEFT OUTER JOIN
并一一检查所有 WHERE 条件。
您可以从以下语句开始:
SELECT E~EQUNR, E~EQART, I~BEBER, Q~IWERK, I~TPLNR, K~EQKTX, K~SPRAS, E~GERNR, X~PLTXT
FROM EQUI AS E
LEFT OUTER JOIN EQKT AS K ON K~EQUNR EQ E~EQUNR
LEFT OUTER JOIN EQUZ AS Q ON Q~EQUNR EQ E~EQUNR
LEFT OUTER JOIN ILOA AS I ON I~ILOAN EQ Q~ILOAN
LEFT OUTER JOIN IFLOTX AS X on X~TPLNR EQ I~TPLNR
我目前正在开发一个需要 EQUI table 所有设备的应用程序。当我通过 SE11 查看 table 时,有 225 个条目。
当我尝试通过功能模块 select 设备时,我得到了非常不同的结果。
SELECT E~EQUNR, E~EQART, I~BEBER, Q~IWERK, I~TPLNR, K~EQKTX, K~SPRAS, E~GERNR, X~PLTXT
FROM EQUI AS E
INNER JOIN EQKT AS K ON K~EQUNR EQ E~EQUNR
INNER JOIN EQUZ AS Q ON Q~EQUNR EQ E~EQUNR
INNER JOIN ILOA AS I ON I~ILOAN EQ Q~ILOAN
INNER JOIN IFLOTX AS X on X~TPLNR EQ I~TPLNR
WHERE E~EQUNR LIKE @P_EQUNR
AND I~BEBER LIKE @P_BEBER
AND I~TPLNR LIKE @P_TPLNR
AND Q~IWERK LIKE @P_IWERK
AND E~GERNR LIKE @P_GERNR
AND K~SPRAS EQ @IV_SPRAS
AND X~SPRAS EQ @IV_SPRAS
INTO TABLE @ET_EQUIPS.
当我用这个 select 语句查询它们时,我确实得到了与 EQUI table 相同数量的结果,但没有我需要的其他数据。
SELECT E~EQUNR, E~EQART
FROM EQUI AS E
INNER JOIN JEST AS J ON J~OBJNR EQ E~OBJNR
INNER JOIN TJ02T AS T on T~ISTAT EQ J~STAT
WHERE INACT NE 'X'
AND J~STAT NE 'I0320'
AND J~STAT NE 'I0076'
INTO TABLE @ET_EQUIPS.
对于如何使用所有其他数据也获得相同数量的结果有什么帮助吗?
通常当您的某些条件不满足或记录集未出现在其中一个连接表中时,就会发生这种情况。尝试使用 LEFT OUTER JOIN
并一一检查所有 WHERE 条件。
您可以从以下语句开始:
SELECT E~EQUNR, E~EQART, I~BEBER, Q~IWERK, I~TPLNR, K~EQKTX, K~SPRAS, E~GERNR, X~PLTXT
FROM EQUI AS E
LEFT OUTER JOIN EQKT AS K ON K~EQUNR EQ E~EQUNR
LEFT OUTER JOIN EQUZ AS Q ON Q~EQUNR EQ E~EQUNR
LEFT OUTER JOIN ILOA AS I ON I~ILOAN EQ Q~ILOAN
LEFT OUTER JOIN IFLOTX AS X on X~TPLNR EQ I~TPLNR