[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Apr 2013
    Beiträge
    6
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Der SQL ist doch "transparent", erleichtert die Verarbeitung und SQL verhindert automatisch eine Endlosrekursion.
    vermutlich ist eine In-Sich-Verwendung in der Stückliste gemeint. Dagegen ist SQL wohl noch machtlos, ist eben keine richtige Sprache

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.932
    Zitat Zitat von Alfred E. Neumann Beitrag anzeigen
    vermutlich ist eine In-Sich-Verwendung in der Stückliste gemeint. Dagegen ist SQL wohl noch machtlos, ist eben keine richtige Sprache
    Mit SQL können sehr wohl wechselseitige Abfragen gemacht werden, ohne dass man in eine Endlosschleife läuft.

    Dazu muss lediglich die Anweisung CYCLE zwischen der CTE und der endgültigen SELECT-Anweisung eingefügt werden.

    Hier ein Beispiel einer Auswertung mit wechselseitigen Beziehungen - Fahrpläne (ohne Endlos-Schleife).
    Code:
    With Destinations (Departure, Arrival, Connections, Costs) 
      as (Select Departure, Arrival, 
                 Cast(Departure concat '->' concat Arrival as VarChar(200)),
                 Price
             From Flights f
             Where Departure ='Frankfurt'
          Union All
          Select d.Departure, f.Arrival, 
                 Cast(d.Connections concat '->' concat f.Arrival as VarChar(200)),
                 Costs + Price
             From Destinations d join Flights f on d.Arrival = f.Departure
           Where d.arrival <> 'Frankfurt')
          Cycle Arrival set cyclic_data to '1' Default '0'
    Select Departure, Arrival, Connections, Costs 
       From Destinations
    Where cyclic_data = '0'
    order by departure, arrival
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Apr 2013
    Beiträge
    6
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Mit SQL können sehr wohl wechselseitige Abfragen gemacht werden, ohne dass man in eine Endlosschleife läuft.

    Dazu muss lediglich die Anweisung CYCLE zwischen der CTE und der endgültigen SELECT-Anweisung eingefügt werden.
    Grosse Klasse, vielen Dank!

Similar Threads

  1. SQL: Ausführungsverhalten einer Funktion in einem CASE-Statement
    By mwithake in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 04-08-09, 14:57
  2. Funktion in WRKACTJOB wiederherstellen
    By Marsman in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 27-09-06, 12:32
  3. sql funktion
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 01-06-06, 12:16
  4. *zoned bei SQLRPGLE Programm
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 12-07-05, 13:04
  5. Erstellen Trigger über SQL / Read Funktion
    By GHoffmann in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 07-07-05, 09:18

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •