PDA

View Full Version : QMQRY LEFT OUTER JOIN



Matthias.Hayn
06-12-04, 12:56
Hallo Gemeinde,

nachdem ich mich heute vormittag aufgrund der Antworten im Forum nun mit dem LEFT OUTER JOIN beschäftigt habe, stecke ich nun fest.
Ich habe nachfolgend mal den Quellcode des QMQRY kopiert, wenn ich den mit STRQMQRY aufrufe, bekomme ich die Nachricht 'Schlüsselwort WHERE nicht erwartet. Gültige Token: ON LEFT CROSS INNER
EXCEPTION.'

Was mache ich falsch?

Danke an alle im voraus

Matthias

--START QUELLCODE
H QM4 05 Q 01 E V W E R 01 03 04/11/22 13:31
V 1001 050 Rechnungsausgänge GD nach Vertreter
V 5001 004 *HEX
SELECT
ALL A.VERTRT, A.KUNNUM, D.BZ1, D.PLZ, D.ORT, A.ORDNUM, A.BELNUM,
A.DRKDAT, B.ASTNUM, E."CHAR", E.ZF3, (B.POSWRT), B.GELMGE, E.VKPRS
FROM FSBD106/FSFAK00P A
LEFT OUTER JOIN FSBD106/FSFAK01P B
LEFT OUTER JOIN FSBD101/FSADR01P C
LEFT OUTER JOIN FSBD101/FSADR00P D
LEFT OUTER JOIN FSBD101/FSAST00P E
ON A.BELNUM = B.BELNUM
AND A.KUNNUM = C.MANNUM
AND C.ADRNUM = D.ADRNUM
AND B.ASTNUM = E.ASTNUM
WHERE
(A.DRKDAT BETWEEN &FDATE AND &TDATE
AND A.VERTRT = &VTX1
AND C.VWDART = 'VR'
AND C.ZNUM = 1
AND A.BELART = 'GD')
ORDER BY 001 ASC, 002 ASC

Allrounder
06-12-04, 13:05
Meines Wissens verträgt sich ON und WHERE nicht.
Lass das WHERE einfach weg, dafür ein AND dazu:

SELECT
ALL A.VERTRT, A.KUNNUM, D.BZ1, D.PLZ, D.ORT, A.ORDNUM, A.BELNUM,
A.DRKDAT, B.ASTNUM, E."CHAR", E.ZF3, (B.POSWRT), B.GELMGE, E.VKPRS
FROM FSBD106/FSFAK00P A
LEFT OUTER JOIN FSBD106/FSFAK01P B
LEFT OUTER JOIN FSBD101/FSADR01P C
LEFT OUTER JOIN FSBD101/FSADR00P D
LEFT OUTER JOIN FSBD101/FSAST00P E
ON A.BELNUM = B.BELNUM
AND A.KUNNUM = C.MANNUM
AND C.ADRNUM = D.ADRNUM
AND B.ASTNUM = E.ASTNUM
AND A.DRKDAT BETWEEN &FDATE AND &TDATE
AND A.VERTRT = &VTX1
AND C.VWDART = 'VR'
AND C.ZNUM = 1
AND A.BELART = 'GD'
ORDER BY 001 ASC, 002 ASC

Gruß
Allrounder

BenderD
06-12-04, 13:17
Hallo Matthias,
SELECT
ALL A.VERTRT, A.KUNNUM, D.BZ1, D.PLZ, D.ORT, A.ORDNUM, A.BELNUM,
A.DRKDAT, B.ASTNUM, E."CHAR", E.ZF3, (B.POSWRT), B.GELMGE, E.VKPRS
FROM FSBD106/FSFAK00P A
LEFT OUTER JOIN FSBD106/FSFAK01P B
ON A.BELNUM = B.BELNUM
LEFT OUTER JOIN FSBD101/FSADR01P C
ON A.KUNNUM = C.MANNUM
LEFT OUTER JOIN FSBD101/FSADR00P D
ON C.ADRNUM = D.ADRNUM
LEFT OUTER JOIN FSBD101/FSAST00P E
ON B.ASTNUM = E.ASTNUM
WHERE
(A.DRKDAT BETWEEN &FDATE AND &TDATE
AND A.VERTRT = &VTX1
AND C.VWDART = 'VR'
AND C.ZNUM = 1
AND A.BELART = 'GD')
ORDER BY 001 ASC, 002 ASC


Hallo Gemeinde,

nachdem ich mich heute vormittag aufgrund der Antworten im Forum nun mit dem LEFT OUTER JOIN beschäftigt habe, stecke ich nun fest.
Ich habe nachfolgend mal den Quellcode des QMQRY kopiert, wenn ich den mit STRQMQRY aufrufe, bekomme ich die Nachricht 'Schlüsselwort WHERE nicht erwartet. Gültige Token: ON LEFT CROSS INNER
EXCEPTION.'

Was mache ich falsch?

Danke an alle im voraus

Matthias

--START QUELLCODE
H QM4 05 Q 01 E V W E R 01 03 04/11/22 13:31
V 1001 050 Rechnungsausgänge GD nach Vertreter
V 5001 004 *HEX
SELECT
ALL A.VERTRT, A.KUNNUM, D.BZ1, D.PLZ, D.ORT, A.ORDNUM, A.BELNUM,
A.DRKDAT, B.ASTNUM, E."CHAR", E.ZF3, (B.POSWRT), B.GELMGE, E.VKPRS
FROM FSBD106/FSFAK00P A
LEFT OUTER JOIN FSBD106/FSFAK01P B
LEFT OUTER JOIN FSBD101/FSADR01P C
LEFT OUTER JOIN FSBD101/FSADR00P D
LEFT OUTER JOIN FSBD101/FSAST00P E
ON A.BELNUM = B.BELNUM
AND A.KUNNUM = C.MANNUM
AND C.ADRNUM = D.ADRNUM
AND B.ASTNUM = E.ASTNUM
WHERE
(A.DRKDAT BETWEEN &FDATE AND &TDATE
AND A.VERTRT = &VTX1
AND C.VWDART = 'VR'
AND C.ZNUM = 1
AND A.BELART = 'GD')
ORDER BY 001 ASC, 002 ASC

Matthias.Hayn
06-12-04, 13:33
Danke, das klappt ja einwandfrei.
Und wieder was gelernt!

Gruss

Matthias