[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2003
    Beiträge
    746

    Zusammenhängende Zeiträume zählen

    ...darf ich auch mal die Kollegen mit dem schwarzen Gürtel in SQL um Hilfe bitten?

    Aus dem folgenden Beispiel sollen zusammenhängende Zeiträume gezählt werden:

    PERSNR, REISEVON, REISEBIS
    000001, 2018-05-07, 2018-05-17
    000001, 2018-05-18, 2018-05-20
    000001, 2018-05-21, 2018-05-22
    000001, 2018-06-01, 2018-06-10
    000001, 2018-06-11, 2018-06-15
    000002, 2018-10-01, 2018-10-10
    000002, 2018-10-15, 2018-10-20

    Als Ergebnis ist gewünscht:

    PERSNR, COUNT
    000001, 2
    000002, 2

    Herzlichen Dank vorab!

  2. #2
    Registriert seit
    Apr 2019
    Beiträge
    43
    Select PERSNR, Count(*) from ****
    Group by persnr, substr(cast (REISEVON as Char(26)), 1, 4)

    Eine detailliertere Beschreibung ist unabdingbar.

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Bisschen tricky aber sollte funktionieren.

    Code:
    Select x.PersNr, Count(*)
       from YourTable x Left Join YourTable y 
            on     x.PersNr   = y.PersNr
               and x.ReiseVon = y.ReiseBis + 1 Day
    Where y.PersNr is NULL
    Group By x.PersNr
    Birgitta
    Birgitta Hauser

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

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    Ohne es probiert zu haben, aber ungefär so:

    datei virtuel um 4. Feld erweitern reise bis + 1 tag und 5. feld status
    PERSNR, REISEVON, REISEBIS, reisbis+1, status
    000001, 2018-05-07, 2018-05-17, 2018-05-18
    000001, 2018-05-18, 2018-05-20, 2018-05-21
    000001, 2018-05-21, 2018-05-22, 2018-05-22
    000001, 2018-06-01, 2018-06-10, 2018-06-10
    000001, 2018-06-11, 2018-06-15, 2018-06-15
    000002, 2018-10-01, 2018-10-10, 2018-10-11
    000002, 2018-10-15, 2018-10-20 2018-10-21

    setzen Status where exist persnr und reisevon = reisebis+1
    zählen sätze ohne status

    Robi

    Birgitta war schneller (und besser)
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  5. #5
    Registriert seit
    Jan 2003
    Beiträge
    746
    Vielen Dank ihr Lieben,
    ihr habt mir das verlängerte Wochenende gerettet!

Similar Threads

  1. SQL Ergebnisse zählen
    By Domeus in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 29-01-19, 13:52
  2. Benutzer zählen...
    By Joe in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 08-11-01, 14:37
  3. Sätze einer Datei zählen
    By Ursus in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 09-08-01, 08:59

Berechtigungen

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