SOG-Helpcenter Logo SOG Business - Software

Verwendung von SQL Join Abfragen


Um SQL-Join Abfragen zu nutzen, gehen Sie wie folgt vor:

  1. Konfigurieren Sie Datenfelder aus Tabellen, die über Relationen verbunden sind.

  2. Geben Sie Auswahlkriterien in einem oder mehreren Relations-Datenfeldern vor.

Konfiguration von Datenfeldern aus Tabellen, die über Relationen verbunden sind


Rufen Sie den Spalten-Konfigurationsdialog des SQL-Selectors über das Kontextmenü oder die Tastenfunktion Ctrl-F auf.
(Hier am Beispiel der Aufgabensuche)
 

 
Folgen Sie einer Relation durch Klicken auf die Relations-Schaltfläche.
Aktivieren Sie ein Relations-Datenfeld durch Ziehen des gewünschten Datenfeldes in die Liste der aktiven Felder.

 
 

Vorgabe von Auswahlkriterien für Relationsdatenfelder


Tragen Sie den gesuchten Wert in einem Relationsdatenfeld ein. Um Relationsdatenfelder erkennen zu können, sind diese farblich hervorgehoben.
 
Der in diesem Beispiel erzeugte SQL hat folgenden Aufbau:

select * from f000

where ( 

  f000.sach4 IN ( 'sogadm' , 'hansen' , 'holger' , 'runge' ) 

  AND f000.erl_dat = 0 AND 

exists (select 1 from f010 as rel1_f010 where f000.firma = rel1_f010.firma AND f000.ek_vk = rel1_f010.sa AND f000.konto = rel1_f010.konto 

  AND rel1_f010.name1 like '%Aut%' ) 

)


Durch die Verwendung von Relationsdatenfeldern werden automatisch Untertabellen erzeugt, die die relevanten Treffermengen der einbezogenen Tabellen darstellen:

 
 

Umfangreicheres Beispiel


In diesem Beispiel wurde bei der Konfiguration mehrfach dem Relationspfad gefolgt, und so ein Datenfeld aus dem mit einer Auftragsposition verknüpften Artikel als Selektionsbedingung konfiguriert.
Bei Vorgabe einer entsprechenden, internen Artikelbezeichnung, werden nun Aufgaben dargestellt, die sich auf Kunden beziehen, die einen Vorgang haben, in dem ein Artikel vorkommte, dessen interne Bezeichnung einem vorgegebenen Muster entspricht.
 
 

Die Untertabellen zeigen dabei die relevanten Datensätze der notwendigen Tabellen.
Achtung: Die Ausführung solcher SQL-Anweisungen kann zum Teil sehr lange dauern, da große Datenmenge durchsucht werden müssen!
Der generiert SQL hat folgenden Aufbau:

select * from f000

where ( 

  f000.sach4 IN ( 'sogadm' , 'hansen' , 'holger' , 'runge' ) 

  AND f000.erl_dat = 0 AND 

exists (select 1 from f010 as rel1_f010 where f000.firma = rel1_f010.firma AND f000.ek_vk = rel1_f010.sa AND f000.konto = rel1_f010.konto 

  AND ( rel1_f010.name1 like '%Aut%' AND 

  exists (select 1 from f090 as rel2_f090 where rel1_f010.firma = rel2_f090.firma AND rel1_f010.sa = rel2_f090.sa AND rel1_f010.konto = rel2_f090.konto AND 

    exists (select 1 from f030 as rel3_f030 where rel2_f090.firma = rel3_f030.firma AND rel2_f090.sa2 = rel3_f030.sa AND rel2_f090.art = rel3_f030.art 

      AND rel3_f030.int_bez like '%VASE%' ) ) ) ) 

)