title image


Smiley Re: Ora 8.1 OUTER JOIN Syntax vs. Standard
Hallo Frank,



Versuche es mal mit OUTER JOINs.



Bis einschließlich ORACLE 8.1 gab es nur die Möglichkeit des (+) für OUTER JOINs:



SELECT a.artikel_nr, a.bezeichnung_1, a.bezeichnung_2, a.lagerort,

SUM(b.menge_1) AS bestand,

p1.preis_eigenwaehrung AS k1,

p2.preis_eigenwaehrung AS k2,

p3.preis_eigenwaehrung AS k3

FROM part a, pmlb b,

( SELECT *

FROM pplp

WHERE preislisten_nr = 1 ) p1,

( SELECT *

FROM pplp

WHERE preislisten_nr = 2 ) p2,

( SELECT *

FROM pplp

WHERE preislisten_nr = 3 ) p3

WHERE a.artikel_nr = 't'

AND a.artikel_nr = b.artikel_nr

AND a.artikel_nr = p1.artikel_nr (+)

AND a.artikel_nr = p2.artikel_nr (+)

AND a.artikel_nr = p3.artikel_nr (+)

GROUP BY a.artikel_nr, a.artikel_nr, a.bezeichnung_1, a.bezeichnung_2, a.lagerort,

p1.preis_eigenwaehrung, p2.preis_eigenwaehrung, p3.preis_eigenwaehrung;





In neueren Versionen und auch unter z.B. MySQL 4.1 würde man das jetzt so machen:

SELECT a.artikel_nr, a.bezeichnung_1, a.bezeichnung_2, a.lagerort,

SUM(b.menge_1) AS bestand,

p1.preis_eigenwaehrung AS k1,

p2.preis_eigenwaehrung AS k2,

p3.preis_eigenwaehrung AS k3

FROM part a,

JOIN pmlb b ON a.artikel_nr = b.artikel_nr

LEFT JOIN pplp p1 ON a.artikel_nr = p1.artikel_nr AND p1.preislisten_nr = 1

LEFT JOIN pplp p2 ON a.artikel_nr = p2.artikel_nr AND p2.preislisten_nr = 2

LEFT JOIN pplp p3 ON a.artikel_nr = p3.artikel_nr AND p3.preislisten_nr = 3

WHERE a.artikel_nr = 't'

GROUP BY a.artikel_nr, a.artikel_nr, a.bezeichnung_1, a.bezeichnung_2, a.lagerort,

p1.preis_eigenwaehrung, p2.preis_eigenwaehrung, p3.preis_eigenwaehrung;



Gruß

Saluk







diu vive floreque.
Spockus

erreicht am 04.03.2008 09:47:23

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: