[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Sep 2004
    Beiträge
    5

    Sql schön positionieren

    Hi

    Ich wollte fragen, wie ich meinem Sql beibringe schön positioniert zu sein. Es ist beinahe alles richtig, bis auf den Schluss. Ich habe da eine pause von 145 zeichen drin und der soll mir dann genau dort weiterpositionieren aber irgendwie tut er das nicht.

    Hier ein Auszug vom Output:

    .....3421 3404 8741 8965 9052 9904
    ...........................9396 8965
    ...................9921 9052 8876
    ............8703 8871
    ...................8703
    .........................................9960 898
    8703
    ............8703
    ..................4513 8754 8801 8897 9921
    ..................8703
    ..................8826
    ..................9052

    (die Punkte sind nicht da, die habe ich da hingetan, damit man sieht wie es aussieht im Ouput)
    Mit welchen befehlen bekomme ich das so hin?

    3421 3404 8741 8965 9052 9904
    9396 8965
    9921 9052 8876
    8703 8871
    8703
    9960 898
    8703
    8703
    4513 8754 8801 8897 9921
    8703
    8826
    9052

    Mfg Psicopatico

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????
    ?????????????????????????????????????????????????? ????????????????????

    Zitat Zitat von Psicopatico
    Hi

    Ich wollte fragen, wie ich meinem Sql beibringe schön positioniert zu sein. Es ist beinahe alles richtig, bis auf den Schluss. Ich habe da eine pause von 145 zeichen drin und der soll mir dann genau dort weiterpositionieren aber irgendwie tut er das nicht.

    Hier ein Auszug vom Output:

    .....3421 3404 8741 8965 9052 9904
    ...........................9396 8965
    ...................9921 9052 8876
    ............8703 8871
    ...................8703
    .........................................9960 898
    8703
    ............8703
    ..................4513 8754 8801 8897 9921
    ..................8703
    ..................8826
    ..................9052

    (die Punkte sind nicht da, die habe ich da hingetan, damit man sieht wie es aussieht im Ouput)
    Mit welchen befehlen bekomme ich das so hin?

    3421 3404 8741 8965 9052 9904
    9396 8965
    9921 9052 8876
    8703 8871
    8703
    9960 898
    8703
    8703
    4513 8754 8801 8897 9921
    8703
    8826
    9052

    Mfg Psicopatico
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Sep 2004
    Beiträge
    5
    tolle antwort danke


    also meine konkrete frage gibt es einen befehl in sql mit dem ich sagen kann beginne im ouput bei spalte 269? also vorher gibt es schon einträge und dann eine pause von 145 spalten und dann soll er bei spalte 269 ansetzten.

    danke

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nein, den gibt es nicht. Aber es gibt einen kleinen Trick:
    Erstellen einer Datei mit einem Satz, 1 Feld Typ Character in maximaler länge (z.B. 5000).
    Beim Select dann das Feld mittels substr(Feld, 1, nn) auswählen (nn=gewünschte Länge).
    Die Datei bei "from" ohne weitere Bedingung verknüpfen, so dass der Satz mit jedem Satz verknüpft wird.

    z.B.:
    select f1, f2, substr(spcfld, 1, 269), f3
    from myfile, myspcfile
    where ...
    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
    Mar 2002
    Beiträge
    5.365
    Hallo,

    tolle Frage - ich liebe Ratespiele. Machts den Antwortern doch nicht so schwer, etwas mehr Präzision bei den Fragen erleichter das antworten und spart unbezahlte Zeit.
    Falls es sich um interaktives SQL handeln sollte, dann kann man Leerstellen auch so erreichen:

    select ' ', kunde.*
    from kunde
    .....

    mfg

    Dieter Bender

    Zitat Zitat von Psicopatico
    tolle antwort danke


    also meine konkrete frage gibt es einen befehl in sql mit dem ich sagen kann beginne im ouput bei spalte 269? also vorher gibt es schon einträge und dann eine pause von 145 spalten und dann soll er bei spalte 269 ansetzten.

    danke
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    @Dieter
    Jaja, und die 269 Leerzeichen muss ich genau abzählen
    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
    Mar 2002
    Beiträge
    5.365
    @Baldur:

    und dann wieder 124 zurück

    Dieter

    Zitat Zitat von Fuerchau
    @Dieter
    Jaja, und die 269 Leerzeichen muss ich genau abzählen
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    @Baldur:

    aber im Ernst:

    select char(' ', 145), kunde.*
    from kunde ...

    geht auch

    mfg

    Dieter


    Zitat Zitat von Fuerchau
    @Dieter
    Jaja, und die 269 Leerzeichen muss ich genau abzählen
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Sep 2004
    Beiträge
    5
    der select vom sql sieht so aus:

    SELECTdistinct rpad(NAME,30) ||''||

    rpad
    (VORNAME,31) ||''||

    rpad
    (to_char(FALLEINDATUM,'DD.MM.YYYY'),10) ||''||

    rpad
    (to_char(FALLAUSDATUM,'DD.MM.YYYY'),10) ||''||

    lpad
    (VERWEILDAUER_I_TAGEN,4) ||''||

    rpad
    (to_char(GEBDATUM,'DD.MM.YYYY'),10) ||''||

    lpad
    (ALTER_I_JAHREN,3,'000') ||''||

    lpad
    ('000',3,'000') ||''||

    lpad
    (geschlecht,1) ||''||

    lpad
    (' ',2,' ') ||''||

    lpad
    ('0000',4,'0000') ||''||

    lpad
    (' ',1,' ') ||''||

    lpad
    (aus_1,1,' ') ||''||

    lpad
    (wo_2,1,' ') ||''||

    lpad
    (nach_3,1,' ') ||''||

    lpad
    ('A',1,'A') ||''||

    rpad
    (substr(ICD1,1,5),5,' ') ||''||

    rpad
    (substr(ICD2,1,5),5,' ') ||''||

    rpad
    (substr(ICD3,1,5),5,' ') ||''||

    rpad
    (substr(ICD4,1,5),5,' ') ||''||

    rpad
    (substr(ICD5,1,5),5,' ') ||''||

    rpad
    (substr(ICD6,1,5),5,' ') ||''||

    rpad
    (substr(ICD7,1,5),5,' ') ||''||

    rpad
    (substr(ICD8,1,5),5,' ') ||''||

    rpad
    (substr(ICD9,1,5),5,' ') ||''||

    rpad
    (substr(ICD10,1,5),5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    rpad
    (CHOP1,4,' ') ||' '||

    rpad
    (CHOP2,4,' ') ||' '||

    rpad
    (CHOP3,4,' ') ||' '||

    rpad
    (CHOP4,4,' ') ||' '||

    rpad
    (CHOP5,4,' ') ||' '||

    rpad
    (CHOP6,4,' ') ||' '||

    rpad
    (CHOP7,4,' ') ||' '||

    rpad
    (CHOP8,4,' ') ||' '||

    rpad
    (CHOP9,4,' ') ||' '||

    rpad
    (CHOP10,4,' ')"Name"

    FROM chop_1

    aber der output stimmt nicht... die leerzeichen hats irgendwie nicht reinkopiert.. wenn da steht rpad(CHOP10,4,' '), dann sieht das im original schon so aus rpad(CHOP10,4,'....') (. durch leerzeichen ersetzen). Aber irgendwie stimmt der output nicht, wenn es jetzt z.b icd1 und icd2 bei xy gibt, dann verschiebt sich das ganze am ende, wenn es jedoch 10 gibt, dann stimmt alles aber nur wenige haben 10 icd.

    hoffe einer von euch hat etwas gecheckt was ich geschrieben habe

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    ... und dann gibt es noch die SQL Scalare Funktion SPACE(NumerWert), mit der die angegebene Anzahl and Blanks geschrieben werden kann!

    Beispiel:
    SELECT space(5), space(10) concat MyField
    FROM MySchema.MyFile

    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

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    ich wusste schon warum ich mit mehreren Reihen Fragezeichen reagiert habe!!!

    rpad? lpad? um was für eine Datenbank handelt es sich? welches Frontend benutzen Sie? Was wollen Sie eigentlich mit Ihrem SQL erreichen?

    mfg

    Dieter Bender


    Zitat Zitat von Psicopatico
    der select vom sql sieht so aus:

    SELECTdistinct rpad(NAME,30) ||''||

    rpad
    (VORNAME,31) ||''||

    rpad
    (to_char(FALLEINDATUM,'DD.MM.YYYY'),10) ||''||

    rpad
    (to_char(FALLAUSDATUM,'DD.MM.YYYY'),10) ||''||

    lpad
    (VERWEILDAUER_I_TAGEN,4) ||''||

    rpad
    (to_char(GEBDATUM,'DD.MM.YYYY'),10) ||''||

    lpad
    (ALTER_I_JAHREN,3,'000') ||''||

    lpad
    ('000',3,'000') ||''||

    lpad
    (geschlecht,1) ||''||

    lpad
    (' ',2,' ') ||''||

    lpad
    ('0000',4,'0000') ||''||

    lpad
    (' ',1,' ') ||''||

    lpad
    (aus_1,1,' ') ||''||

    lpad
    (wo_2,1,' ') ||''||

    lpad
    (nach_3,1,' ') ||''||

    lpad
    ('A',1,'A') ||''||

    rpad
    (substr(ICD1,1,5),5,' ') ||''||

    rpad
    (substr(ICD2,1,5),5,' ') ||''||

    rpad
    (substr(ICD3,1,5),5,' ') ||''||

    rpad
    (substr(ICD4,1,5),5,' ') ||''||

    rpad
    (substr(ICD5,1,5),5,' ') ||''||

    rpad
    (substr(ICD6,1,5),5,' ') ||''||

    rpad
    (substr(ICD7,1,5),5,' ') ||''||

    rpad
    (substr(ICD8,1,5),5,' ') ||''||

    rpad
    (substr(ICD9,1,5),5,' ') ||''||

    rpad
    (substr(ICD10,1,5),5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    lpad
    (' ',5,' ') ||''||

    rpad
    (CHOP1,4,' ') ||' '||

    rpad
    (CHOP2,4,' ') ||' '||

    rpad
    (CHOP3,4,' ') ||' '||

    rpad
    (CHOP4,4,' ') ||' '||

    rpad
    (CHOP5,4,' ') ||' '||

    rpad
    (CHOP6,4,' ') ||' '||

    rpad
    (CHOP7,4,' ') ||' '||

    rpad
    (CHOP8,4,' ') ||' '||

    rpad
    (CHOP9,4,' ') ||' '||

    rpad
    (CHOP10,4,' ')"Name"

    FROM chop_1

    aber der output stimmt nicht... die leerzeichen hats irgendwie nicht reinkopiert.. wenn da steht rpad(CHOP10,4,' '), dann sieht das im original schon so aus rpad(CHOP10,4,'....') (. durch leerzeichen ersetzen). Aber irgendwie stimmt der output nicht, wenn es jetzt z.b icd1 und icd2 bei xy gibt, dann verschiebt sich das ganze am ende, wenn es jedoch 10 gibt, dann stimmt alles aber nur wenige haben 10 icd.

    hoffe einer von euch hat etwas gecheckt was ich geschrieben habe
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  12. #12
    Registriert seit
    Sep 2004
    Beiträge
    5
    oracle 9.x ehm ich muss ein outputfile erstellen, dass dann gelesen werden kann automatisch..

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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