[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.706
    Das hängt von der Speicherform ab.
    Beispiel TTMMJJJJ

    substr(digits(MyDate), 5, 4) concat substr(digits(MyDate), 3, 1) concat substr(digits(MyDate), 1, 2)

    Je nach dem, was man machen will sähe dein Max(Bestelldatum) dann so aus:

    max(
    substr(digits(Bestelldatum), 5, 4) concat substr(digits(Bestelldatum), 3, 1) concat substr(digits(Bestelldatum), 1, 2)
    ) as Bestelldatum

    So kann man fast alles verwursten.
    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

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.931
    Ich würde allerdings den Monat 2stellig definieren!

    max(
    substr(digits(Bestelldatum), 5, 4) concat substr(digits(Bestelldatum), 3, 2) concat substr(digits(Bestelldatum), 1, 2)
    ) as Bestelldatum

    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
    Sep 2005
    Beiträge
    53

    DANKE


    HALLO,

    vielen Dank, werd das so mal machen und mich melden !

    DANKE ERIC

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.706
    Nunja, Teppfuhler sollten durchaus mal erlaubt sin .
    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

  5. #5
    Registriert seit
    Sep 2005
    Beiträge
    53

    Thumbs up DANKE

    Hallo,

    danke, ja, damit kann man jedes Feld wie man will drehen, wenden und verbiegen !

    Hab das soeben auf einer AS400 getestet !

    vielen Dank ERIC

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Wie gesagt, in Query/400 gibt's auch Aggregatfunktionen und Gruppenwechsel.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.706
    Im Query/400 aber ungleich schwieriger, da man ja hier nur die Gruppensummen haben will.
    Und wenn ich das Ergebnis auch noch in einem Programm haben will, nehm ich doch lieber gleich embedded SQL.
    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

  8. #8
    Registriert seit
    Sep 2005
    Beiträge
    53

    wie kommen die anderen Felder hinzu

    Hallo,

    select ETNummer, max(Bestelldatum) as Bestelldatum
    from MyFile
    group by ETNummer

    funktionietr mit den beiden Spalten, wie bekomme ich die anderen hinzu ?

    DANKE im voraus ERIC

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Willst du weiter Spalten angezeigt bekommen, musst du diese entweder mit einer Aggregationsfunktion angeben (z.B. Min(sp1), Max(sp1), Avg(sp1), ...) oder wenn du sie nur so angeben willst, musst du sie zumindest in der Group By-Klausel angeben.
    Allerdings ändert sich dann auch die Ergebnistabelle entsprechend.

    Falls du nur alle Datensätze angezeigt bekommen willst und die Spalte Bestelldatum das Maximun zeigen soll, du aber keine Aggregationen haben willst kannst du auch Subselects verwenden.

    Code:
    Select Tab1.*, (Select Max(Bestelldatum) From Tab1) Bestelldatum From Tab1

  10. #10
    Registriert seit
    Sep 2005
    Beiträge
    53

    DANKE

    Hallo, vielen Dank für die Info, mit den group by auf andere Spalten kommen dann wieder alle
    Zeilen, mach den MAX fast wirkungslos.

    Select Tab1.*, (Select Max(Bestelldatum) From Tab1) Bestelldatum From Tab1

    damit setzt er mir eine Spalte hinten an, da steht immer das gleiche Datum, als das höchste Datum drin !

    Bitte nochmals um Hilfe, vielen Dank ERIC

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.706
    Select a.*, (Select Max(b.Bestelldatum) From Tab1 b where a.ETNummer = b.ETNummer) Bestelldatum From Tab1 a
    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

  12. #12
    Registriert seit
    Aug 2001
    Beiträge
    2.931
    ... also ich würde eine Common Table Expression vorziehen oder wenn schon SubSelect diesen in die From-Anweisung packen:

    1. Common Table Expression
    Code:
    With x as (Select ETNummer, Max(BestellDatum) MaxDat
                  From Tab1
                  Group By ETNummer)
    Select a.*
    from x join Tab1 a on a.ETNummer = x.ETNummer and BestellDatum = MaxDat
    ;;
    2. Sub-Select in From-Anweisung
    Code:
    Select a.*
    From (Select EtNummer, Max(BestellDatum) MaxDat
             From Tab1
             Group By EtNummer) x 
         join Tab1 a on a.ETNummer = x.ETNummer and BestellDatum = MaxDat;
    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. laufende Nummer in Select
    By cimbala in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 10-05-10, 07:51
  2. Papierfach Nummer 3
    By mack1964 in forum NEWSboard Drucker
    Antworten: 2
    Letzter Beitrag: 25-02-08, 12:36
  3. Relativer Record Nummer
    By RLurati in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-10-06, 15:13
  4. DDS Font, was verbirgt sich hinter der Nummer?
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 18-07-06, 09:31
  5. LPAR Nummer
    By Muchi in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 28-11-05, 11:25

Berechtigungen

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