I am trying to manipulate a query by converging to JOIN but it continues with the same errors.
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
to
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
The result of the following query does not show any fields.perform multiple variations of the inner join (left-right) with no apparent solution.
Thanks for your comments.
Try checking you inner join you put open and close parenthesis.
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
tyr something like this:
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
you just need to remove the open and close parenthesis because it treats it as one.
You seem to be missing tables. I think this is the equivalent:
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';
Note that T026
does not appear to have a JOIN
condition, only a filtering condition.
I added single quotes for the comparisons to numbers that start with a zero.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.