[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    2.077

    SQL laufende Nr. Denkanstoss gesucht. V5R4

    Hallo *all,
    ich muß für eine Schnittstellen-Datei eine View erstellen in der pro Kunde die offenen Posten jeweils eine laufende Nummer bekommen.

    Kunde 11173 Pos 1 Beleg 12345 offen 500€
    Kunde 11173 Pos 2 Beleg 56894 offen 100€
    Kunde 11173 Pos 3 Beleg 78711 offen 200€
    Kunde 11994 Pos 1 Beleg 56665 offen 10€ etc.

    Teile der Beleg-Nummer scheidet aus, da die nicht wirklich eindeutig sind.
    Welche Möglichkeiten habe ich da?

    (Wobei ich der Meinung bin das Thema hatten wir schon mal, habe es aber leider nicht gefunden)

    GG

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    Ab V6 geht das mit "row_number() over (order by Beleg)".
    Vor V6 hast du leider keine Chance dies per SQL zu lösen.
    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

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Das geht mit OLAP Ranking-Funktionen.

    Code:
    Create View YourSchema.YourView
    as (Select  Row_Number() Over(Partition By Kunde Order By OffenePosten) lfd,
             a.*
          From YourTable);
    @Baldur:
    OLAP-Ranking Funktionen wurden mit V5R4 eingeführt und für einen Gruppen-Wechsel ist die PARTITION BY-Anweisung erforderlich.

    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
    Aug 2006
    Beiträge
    2.077
    Hallo Birgitta,irgendwann möchte ich ja mal Mäuschen spielen und sehen bei welchen SQL-Problemen Du dich anstrengen musst.Danke für die Lösung.GG

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    Das mit dem SQL ist immer so eine Sache.
    Im Moment habe ich auf V5R2 das Problem, dass ein skalarer Subselect mit Count(*) in keinster Weise einen Index verwenden will und noch nicht mal einen Vorschlag dazu hat.
    Dabei würde der Primary Index vollkommen genügen.
    Da es sich um embedded SQL handelt, lese ich nun die benötigten Information beim Fetch einzeln aus und das geht wieder sauschnell.
    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

  6. #6
    Registriert seit
    Jul 2001
    Beiträge
    2.646
    Zitat Zitat von KingofKning Beitrag anzeigen
    Hallo Birgitta,irgendwann möchte ich ja mal Mäuschen spielen und sehen bei welchen SQL-Problemen Du dich anstrengen musst.Danke für die Lösung.GG
    Ein Tetris in SQL zu realisieren könnte auch für Biggi etwas Arbeit sein ;-) Ansonsten wird das schon eine Herausforderung.

    Ich möchte nur meine Alarmglocke bei "Belegnummer nicht eindeutig" vermerkt haben...
    www.RZKH.de
    IBM Champion 2022, 2023, 2024
    IBM i Community Advocate https://www.youracclaim.com/badges/6...c-7ad4ba147af6
    Common / CEAC
    http://pub400.com

  7. #7
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Kannst die Alarmglocke wieder abschalten,
    die lfd-Nr. ist 4 Stellig, die Beleg-Nr. 10 stellig. Da kann ich nicht garantieren das ein Teil der Beleg-Nr. eine eindeutige lfd-nr. ergibt. Insbesondere nicht so schön fortlaufend.

    GG

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Zitat Zitat von KingofKning Beitrag anzeigen
    Hallo Birgitta,irgendwann möchte ich ja mal Mäuschen spielen und sehen bei welchen SQL-Problemen Du dich anstrengen musst.Danke für die Lösung.GG
    Das eine oder andere gibt es da schon noch!
    Tetris muss es nicht unbedingt sein. Mir reichen schon die dynamischen SQL Statemente mit Single und Double Byte Characters und Funktionen, die keine CCSID-Konvertierung zulassen.

    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

Similar Threads

  1. Datum die xte + 1 SQL V5R4
    By KingofKning in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 25-07-14, 15:45
  2. SQL Optimierung V5R4
    By KingofKning in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 17-05-14, 10:33
  3. laufende Nummer in DB mit SQL aktualisieren
    By XMan in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 05-03-14, 09:54
  4. iSeries V5R4 Systemstart
    By roti in forum NEWSboard Server Software
    Antworten: 2
    Letzter Beitrag: 17-02-14, 11:23
  5. V5R4
    By dino in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 18-12-13, 13:59

Berechtigungen

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