我试图通过收敛到 JOIN 来操纵查询,但它继续出现相同的错误。
SELECT TRIM(T007.CUENTA) AS CUENTA,
T007.IDENTCLI AS IDENTTIT,
T013.IDENTCLI AS IDENTADIC,
TRIM(T026.DESTIPT) AS DESTIPT,
T043.PRODUCTO, T043.SUBPRODU,
TRIM(T043.DESPROD) AS DESPROD,
T175.CODESTCTA,
TRIM(T175.DESESTCTA) AS DESESTCTA,
T043.LINEAPR
FROM MPDT007 T007, MPDT013 T013, MPDT043 T043, MPDT175 T175 ,MPDT026 T026
WHERE T007.CUENTA = 000005433752
AND T007.CUENTA = T013.CUENTA
AND T013.NUMBENCTA = 2
AND T013.CODENT = 0001
AND T026.INDTIPT = 3
AND T007.PRODUCTO = T043.PRODUCTO
AND T007.SUBPRODU = T043.SUBPRODU
AND T007.CODESTCTA = T175.CODESTCTA
AND T043.LINEAPR = T175.LINEA
AND T043.LINEAPR <> 0003
自
SELECT TRIM(T007.CUENTA) AS CUENTA,
T007.IDENTCLI AS IDENTTIT,
T013.IDENTCLI AS IDENTADIC,
T043.PRODUCTO AS PRODUCTO,
T043.SUBPRODU AS SUBPRODU,
TRIM(T043.DESPROD) AS DESPROD
FROM MPDT007 T007
JOIN MPDT013 T013 ON (T013.CUENTA = T007.CUENTA AND T013.NUMBENCTA = 2 AND T013.CODENT = 0001)
JOIN MPDT043 T043 ON (T043.LINEAPR <> 0001 AND T043.PRODUCTO = T007.PRODUCTO AND T007.SUBPRODU = T043.SUBPRODU)
WHERE
T007.CUENTA = 000005433752
以下查询的结果不显示任何字段。执行内部联接的多种变体(左-右(,没有明显的解决方案。
感谢您的评论。
尝试检查您的内部连接,您放置了左括号和右括号。
SELECT TRIM(T007.CUENTA) AS CUENTA,
T007.IDENTCLI AS IDENTTIT,
T013.IDENTCLI AS IDENTADIC,
T043.PRODUCTO AS PRODUCTO,
T043.SUBPRODU AS SUBPRODU,
TRIM(T043.DESPROD) AS DESPROD
FROM MPDT007 T007
JOIN MPDT013 T013
ON (T013.CUENTA = T007.CUENTA AND T013.NUMBENCTA = 2 AND T013.CODENT = 0001) --This is your ERROR
JOIN MPDT043 T043
ON (T043.LINEAPR <> 0001 AND T043.PRODUCTO = T007.PRODUCTO AND T007.SUBPRODU = T043.SUBPRODU) --This is your ERROR
WHERE T007.CUENTA = 000005433752
泰尔是这样的:
SELECT TRIM(T007.CUENTA) AS CUENTA,
T007.IDENTCLI AS IDENTTIT,
T013.IDENTCLI AS IDENTADIC,
T043.PRODUCTO AS PRODUCTO,
T043.SUBPRODU AS SUBPRODU,
TRIM(T043.DESPROD) AS DESPROD
FROM MPDT007 T007
JOIN MPDT013 T013
ON T013.CUENTA = T007.CUENTA
AND T013.NUMBENCTA = 2
AND T013.CODENT = 0001
JOIN MPDT043 T043
ON T043.LINEAPR <> 0001
AND T043.PRODUCTO = T007.PRODUCTO
AND T043.SUBPRODU = T007.SUBPRODU
WHERE T007.CUENTA = 000005433752
您只需要删除左括号和右括号,因为它将其视为一个。
您似乎缺少表。 我认为这是等效的:
SELECT . . .
FROM MPDT007 T007 JOIN
MPDT013 T013
ON T007.CUENTA = T013.CUENTA JOIN
MPDT043 T043
ON T007.PRODUCTO = T043.PRODUCTO AND
T007.SUBPRODU = T043.SUBPRODU JOIN
MPDT175 T175
ON T043.LINEAPR = T175.LINEA JOIN
ON T007.CODESTCTA = T175.CODESTCTA CROSS JOIN
MPDT026 T026
WHERE T007.CUENTA = '000005433752' AND
T013.NUMBENCTA = 2
T013.CODENT = '0001' AND
T026.INDTIPT = 3
T043.LINEAPR <> '0003';
请注意,T026
似乎没有JOIN
条件,只有过滤条件。
我添加了单引号以与以零开头的数字进行比较。