[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2002
    Beiträge
    331

    SQL Datums Herausforderung

    Moin moin,

    ich habe da ein kleines Problem mit einer Abfrage, wo ich nicht weiter komme.

    Ich habe eine Kalenderdatei, wo für jeden Tag ein Datensatz vorhanden ist, diese will ich, via Datum, mit einer "Bestandsdatei" verknüpfen. In der Bestandsdatei ist der Status des Datensatzes (es können mehrere Sätze zu einem Datum existieren, der eine kann true sein, der andere (andere Laufnummer) kann false sein) entweder true / false.

    Ich will jetzt aber nur die Sätze haben, die mindestens an 4 aufeinander folgenden Tagen true sind.

    Hat jemand eine Idee?

    Gruß
    Jo

  2. #2
    Registriert seit
    Jul 2001
    Beiträge
    2.713
    Zitat Zitat von DEVJO Beitrag anzeigen
    Hat jemand eine Idee?
    Da es mit SQL hakeliger Aufwand werden könnte:
    RPG? ;-)

    -h
    IBM Champion 2022, 2023, 2024, 2025
    Common Europe Advisory Council / Hall of Fame
    http://pub400.com
    visit www.POWERbunker.com for bespoke IBM i hosting

  3. #3
    Registriert seit
    Jul 2002
    Beiträge
    331
    hmmm....nicht das was ich mir erhofft hatte....

  4. #4
    Registriert seit
    Apr 2005
    Beiträge
    385
    Als schnelle Idee: Common table expressen

    USe X with AS (
    Select KEY AS A, Count(KEY) from Bestand left join on DATUMDATEI on BDAT = DDAT and BSTAT = TRUE GROUP BY KEY, ORDER BY KEY HAVING COUNT(KEY) >=4)

    Select * from BESTAND inner JOIN X on Bestand.key = X.KEY

    oder so...

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Vielleicht so?

    PHP-Code:
    SELECT   DISTINCT BB.* FROM Bestand BBBestand B1Bestand B2Bestand B3

    WHERE    BB
    .STATUS=1
    AND      B1.STATUS=AND B1.DATUM BB.DATUM 1 DAY
    AND      B2.STATUS=AND B2.DATUM BB.DATUM 2 DAYS
    AND      B3.STATUS=AND B3.DATUM BB.DATUM 3 DAYS

    ORDER BY BB
    .DATUM 

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    select Artikel, Count(*)
    from bestand b
    inner join Kalender k on k.tag between b.tag and b.tag + 3 days
    where b.tag = 'Irgendeintag'
    and b.status = true
    Group by Artikel
    having Count(*) = 4


    So ähnlich könnte es gehen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Ich würde Baldurs SQL noch etwas modifizieren:

    Code:
    With x as (Select c.datum
                 From Calendar c join Bestand b 
                      on b.Datum between     c.Datum and c.datum + 3 Days  
                                         and TrueFalse = 1    
                 Group by c.Datum
                 Having Count(c.Datum) >= 4)
    Select b.* 
    from x join Bestand b on x.Datum = b.Datum and TrueFalse = 1
    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

Similar Threads

  1. Procedure mit Datums Parameter aus SQLStatement aufrufen
    By DEVJO in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 21-01-15, 06:59
  2. RPG-Freelancer sucht neue Herausforderung
    By psd-400 in forum NEWSboard Server Job
    Antworten: 0
    Letzter Beitrag: 29-11-13, 11:44
  3. PLZ 28 Erfahrener RPG-Programmierer sucht neue Herausforderung
    By RPG-Programmierer in forum NEWSboard Server Job
    Antworten: 0
    Letzter Beitrag: 13-11-13, 19:27

Berechtigungen

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