[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.386
    - in einer Anzeige gibt es keine null values, die müssen eh mit coalesce raus!
    - von der Performance macht man für sowas einen Blockfetch, der sagt einem auch gleich noch, wieviele es gelesen hat. Bei Maximalgröße zeigt man dann > 1000, wenn man denn in einen 1000er Block einliest. Dann stimmt der Wert auch und eine angezeigte Auswahlliste ist immer eh nur eine Momentaufnahme.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  2. #2
    Registriert seit
    Sep 2005
    Beiträge
    427
    @Baldur Irgendwas fehlt mir ...

    Subfile mit
    Code:
    PLZ   Vertreter    NR
    
    1    v1        n1
    1    v11       n3
    1    v12       n1
    2    v21       n1
    2    v22       n24
    3    v11       n1
    Im CTRLSATZ kann ich filter setzen

    Wenn ich PLZ auf 3 setze soll ein Satz kommen (ind2 und ind3 auf -1 setzen)
    Wenn ich Vertreter auf v11 setze sollen 2 Sätze kommen (ind1 und ind3 auf -1 setzen)
    Wenn ich Vertreter auf v11 setze und Nr auf n3 soll ein Satz kommen (ind1 auf -1 setzen)

    Die variablen im CTRL-Satz heissen PLZ, VT und NR
    Die variablen in der Datei heisseb D_PLZ, D_VT und D_NR

    SQL für die 3 selektionen sieht so aus?
    Code:
    select count(*) over () as anzahl, D_plz, d_vt, d_nr 
      from datei 
    where (:Plz :ind1 is null or :plz = d_plz)
       and (:VT :ind2 is null or :VT = D_VT)
       and (:NR :ind3 is null or :NR = D_NR)
    Und wenn es 87.524 Sätze sind, die die gewählte kombination haben, steht das in (allen) gefetchten Sätzen in Anzahl?
    Richtig?

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.767
    Ja, bei den sog. OLAP-Funktionen wird dies für jeden Satz ausgeworfen.
    Dies hat den Vorteil, dass man auch Summenergebnisse verrechnen kann.
    Z.B:

    Menge * 100 / nullif(sum(Menge) over(), 0) AnteilMenge
    Menge * 100 / nullif(sum(Menge) over(Partition by Auftrag), 0) "AnteilMenge je Auftrag"

    u.v.m.

    Der Vorteil des Count beim Subfile-Laden ist, man könnte dem User nach dem 1. Fetch die Zahl nennen und anbieten die ersten 2000 Zeilen zu laden ohne noch mal neu abfragen zu müssen.
    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

Similar Threads

  1. Dynamischer Call per Prototype
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 28-02-25, 14:42
  2. Antworten: 6
    Letzter Beitrag: 15-01-20, 09:17
  3. set :Z = geht nicht, ohne das set sehrwohl
    By dibe in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 13-11-18, 09:14
  4. SQL Select into
    By alexander may in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 30-03-05, 15:56
  5. SQL Selektion mit LIKE
    By RLurati in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 18-01-05, 12:38

Berechtigungen

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