[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2007
    Beiträge
    42

    SQL DELFOR auslesen

    Hallo Zusammen,

    ich habe einkleines Problem mit unserer DELFOR.

    Ich möchte die Daten zwischen zwei Konstanten auslesen und dann zum nächsten Satz springen.

    Die Struktur ist folgendermaßen,
    .
    .
    .
    AR106616858 000000000 2CK802T3
    AR54 0000000000
    VD245 20141026 0000000000
    SA11 00 0
    DST20141025000000093790020009379002000000000201312 22000000000000000000000000000000000000000000000000 0000000000
    PDN 20141025000000000000000000 000000000000000000000000
    DEL201410270000 0000 000000047361 0100000000000000000000000000000047361
    DEL201411030000 0000 000000372960 0100000000000000000000000000000372960
    DEL201411100000 0000 000000436437 1400000000000000000000000000000436437
    DEL201411170000 0000 000000458973 1400000000000000000000000000000458973
    DEL201411240000 0000 000000456606 1400000000000000000000000000000456606
    DEL201412010000 0000 000000464931 1400000000000000000000000000000464931
    DEL201412080000 0000 000000467367 1400000000000000000000000000000467367
    DEL201412150000 0000 000000424539 1400000000000000000000000000000424539
    DEL201412220000 0000 000000160605 1400000000000000000000000000000160605
    DEL201501050000 0000 000000378585 1400000000000000000000000000000378585
    DEL201501120000 0000 000000426096 1400000000000000000000000000000426096
    DEL201501190000 0000 000000468627 1400000000000000000000000000000468627
    DEL201501260000 0000 000000417777 1400000000000000000000000000000417777
    DEL201502020000 0000 000000396006 1400000000000000000000000000000396006
    DEL201502090000 0000 000000435144 1400000000000000000000000000000435144
    DEL201502160000 0000 000000395700 1400000000000000000000000000000395700
    DEL201502230000 0000 000000423684 1400000000000000000000000000000423684
    DEL201503020000 0000 000000405423 1400000000000000000000000000000405423
    DEL201503090000 0000 000000408858 1400000000000000000000000000000408858
    DEL201503160000201504120000 000001465689 2400000000000000000000000000001465689
    DEL201504130000201505100000 000001543782 2400000000000000000000000000001543782
    DEL201505110000201506070000 000001461759 2400000000000000000000000000001461759
    DEL201506080000201507050000 000001369782 2400000000000000000000000000001369782
    VD320131222201411230010706091201312222014122100125 19534 0000000000
    TCO 0000SEAT 000000000000001 000000000000000 0000000000000000
    TC1 00000000010000000000000000000000
    CS172258 SIL 72258
    (nächster Datensatz)
    AR109165029 000000000 2CK80424
    AR54 0000000000
    VD245 20141026 0000000000
    SA11 00 0
    DST20141025000000000000000000000000000000000201312 22000000000000000000000000000000000000000000000000 0000000000
    PDN 20141026000000000000000000 000000000000000000000000
    DEL201410270000 0000 000000002640 0100000000000000000000000000000002640
    DEL201411030000 0000 000000003408 0100000000000000000000000000000003408
    DEL201411100000 0000 000000004668 1400000000000000000000000000000004668
    DEL201411170000 0000 000000004260 1400000000000000000000000000000004260
    .
    .
    .
    .
    .

    Ich möchte die Daten nach dem "AR1" auslesen (Teilenummer) und dann die folgenden DEL201.... (die Lieferabrufe) dann gehts mit dem nächsten "AR1" weiter....

    Am ende möchte ich eine Tabelle mit alle Teilen und spaltenweise das Datum mit den Abrufen...

    Wie ich die DEL2014... auslese weis ich schon. Nur nicht das ich im Block AR1 zum nächsten AR1 bleibe.

    PART I DESC I 20141027 I 20141103 I 20141110 I .....
    001 I Teile1 I 22 I 34 I 41 I .....
    002 I Teile2 I 12 I 33 I 98 I .....
    003 I Teile3 I 62 I 14 I 21 I .....

    Ich hoffe das geht mit SQL und PHP.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    SQL-technisch ist so eine Tabelle schlecht zu verarbeiten da du keine Feldstruktur hast.
    Die Datei/Tabelle wird wohl ungeschlüsselt sein, so dass bei einer Abfrage die Reihenfolge erhalten bleibt. So kannst du per CASE und SUBSTR die Daten auseinander nehmen:

    select
    case when substr(Feld, 1, 3) = 'AR1' then substr(Feld, n, m) else NULL end as ARTNR,
    case when substr(Feld, 1, 3) = 'DEL' then substr(Feld, n, m) else NULL end as ABRDATE
    from myfile
    where substr(Feld, 1, 3) in ('AR1', 'DEL')

    So bekommst du die Daten zumindest in der Reihenfolge.
    Wobei PHP aber auch Substring o.ä. unterstützt.
    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
    Oct 2007
    Beiträge
    42
    Das auslesen an sich ist ja nicht das Problem... ich möchte ja nun eine Tabelle erstellen in der in der Spalte 1 ARTNR, Spalte 2 Bezeichnung, Spalte 3 (20141027) die Zahl bei DEL20141027 (00047361)

    PART Bezichnung 20141027 20141103 20141110 20141117
    06616858 Teil 1 0047361 0372960 0436437 00458973
    09165029 Teil 2 0002640 0003408 0004668 00004260

    Ich wollte die Zahl in der DEL20141027 und folgende Montage in einer Schleife raus ziehen und in die Tabelle schreiben. Ist zwar nicht die elegante Art aber es funktioniert.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Da die Daten ihre Beziehung nur über die Reihenfolge definieren kannst du halt nichts anderes machen als du es sowieso schon tust.
    Zwischen Satzart AR1 und DEL gibt es keine SQL-technische Beziehung (Join), da die Artikel-Nr. im DEL nicht wiederholt wird.
    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
    Oct 2007
    Beiträge
    42
    Okay, ich versuche dann mit php die ganze sache abzufangen. muss ich wohl durch. :-)

    Besten dank. Wenn ich es habe melde ich mich.

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Mit SQL ohne ORDER BY ist es sowieso problematisch: Sobald das System einen temporären Zugriffspfad aufbaut und diesen nutzt, ist die Reihenfolge der Sätze nicht mehr gewährleistet.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Die Tabelle scheint eine rein sequentielle ohne Schlüssel zu sein.
    Wie gesagt, hier kann man außer sequentiellem Lesen nur mit Programm-Logik weiterkommen.
    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. Plattenauslastung per Programm auslesen
    By M Scheid in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 25-09-18, 16:05
  2. Datum/Uhrzeit der Quellendateiänderung auslesen
    By urrumpel in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 02-07-14, 13:28
  3. Message von Serverjob auslesen und beantworten
    By TSchuler in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 08-04-14, 15:03
  4. JOBLOG auslesen
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 11-02-14, 14:25
  5. Prozessor Gruppe Pnn Auslesen?
    By AndreasH in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 18-09-02, 11:36

Tags for this Thread

Berechtigungen

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