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

    SQL Felderbenamsung

    Hallo *all,

    ich erstelle hier gerade eine View und möchte die Felder richtig benennen.

    create view test/planz as SELECT
    ALL T01.stmoan as "JahrMonat",
    T01.stkto, T01.sttenr as "Kunden-Nr",

    Wenn ich ein select mache, dann stimmen die Überschriften, allein die Feldnamen heißen dann z.B. Kunden00001 und das ist blöd.

    Bekommt man den Feldnamen auch so genannt wie die Überschrift?

    BTW. habe hier auch noch ein Rechenfeld
    sum(case when stplis = 1 then STWT02 else 0 end) "Plan",
    Das Summenfeld ist als 31,3 definiert bekommt man das auch kleiner definiert?

    GG

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Was Du vergibst ist keine Überschift, sondern der lange SQL Name.
    Für alle Spalten-Namen länger als 10 Zeichen werden automatisch System-Namen bestehend aus den ersten 5 Zeichen des langen Namens und einem fortlaufenden Zähler gebildet.

    Du kannst beim Erstellen der View sowohl einen langen SQL als auch einen kurzen (bis 10 Zeichen langen) System-Namen festlegen. Dazu ist jedoch eine Feld-Liste innerhalb der Create View Definition erfoderlich:

    Code:
    Create View MyView 
    (Langer_Feld_Name01 for SysName01,
     Langer_Feld_Name02 for SysName02,
    ...)
    as (Select * from ...)
    Wenn Du Spalten mit Gänsefüßchen definierst, werden erhalten diese automatisch einen eigenen System-Namen auch dann wenn sie weniger als 10 Zeichen lang sind.
    Außerdem musst Du daran denken, dass die Spalten mit Gänsefüßchen case sensitive sind und immer genau so angegeben werden müssen.

    Überschriften werden mit dem Befehl LABEL ON COLUMN gesetzt.
    1. Column Heading
    Code:
    Label on column ViewName
    (SpaltenName1 is 'Überschrift 1',
     SpaltenName2 is 'Überschrift 2'
    ...)
    2. Text
    Code:
    Label On Column ViewName
    (SpaltenName1 Text is 'Text 01',
     SpaltenName2 Text is 'Text 02',
    ...)
    Der Spalten-Name kann wahlweise durch den langen SQL oder den kurzen System-Namen ersetzt werden.

    @2: Du kannst natürlich jedes Ausgabe-Feld in der View explizit auf den gewünschten Datentypen und Länge casten.
    ... Cast(Sum(.....) as Dec(11, 3))
    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
    Aug 2006
    Beiträge
    2.114
    Danke,

    werde ich morgen mal umsetzen.

    GG

  4. #4
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Hallo Birgitta,
    so ganz komme ich noch nicht klar damit.

    Ich habe dieses Statement abgegeben:

    create view gregor/x
    ("Monat" for x1, "Konto" for x2, "Kunde" for x3, "Firma" for x4)

    as SELECT
    ALL T01.stmoan as x1,
    T01.stkto as x2,
    T01.sttenr as x3,
    '01' as x4
    FROM x/sta01pf T01,
    x/adr01pf t02
    WHERE stFA = 1
    and stfakt = 1
    AND stmoan > 201300

    Außer bei x4 läßt er überall die alten Überschriften.

    Wo ist mein Denkfehler.

    BTW OS = V5R4 (for ever?)

    GG

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von KingofKning Beitrag anzeigen
    Hallo Birgitta,
    so ganz komme ich noch nicht klar damit.

    Ich habe dieses Statement abgegeben:

    create view gregor/x
    ("Monat" for x1, "Konto" for x2, "Kunde" for x3, "Firma" for x4)

    as SELECT
    ALL T01.stmoan as x1,
    T01.stkto as x2,
    T01.sttenr as x3,
    '01' as x4
    FROM x/sta01pf T01,
    x/adr01pf t02
    WHERE stFA = 1
    and stfakt = 1
    AND stmoan > 201300

    Außer bei x4 läßt er überall die alten Überschriften.

    Wo ist mein Denkfehler.

    BTW OS = V5R4 (for ever?)

    GG
    Die Überschriften werden mit dem Befehl LABEL ON gesetzt. Ansonsten werden die Überschriften von dem Original-Feld übernommen.

    Weder "Monat", noch "Konto", noch "Kunde", noch "Firma" sind Überschriften, sondern Feld/Spalten-Namen. Eine SQL beschriebene Tabelle kann Spalten mit einem SQL-Name "sss" oder länger als 10 Zeichen und einem kurzen System-Namen IBM i Namensregeln mit maximal 10 Zeichen haben.
    Sofern ein Spalten-Name kürzer als 10 Zeichen ist und den System-Namens-Regeln der IBM i entspricht, sind SQL-Name und System-Name identisch.

    ... jedoch keiner von beiden ist eine "Überschrift", sondern wird nur statt dessen angezeigt.

    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

  6. #6
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Danke,

    das mit dem Label on hatte ich gemacht und funktioniert auch soweit, dachte ich hätte die berühmten 2 Fliegen mit einer Klappe schlagen können.

    GG

  7. #7
    Registriert seit
    May 2002
    Beiträge
    1.121
    Zitat Zitat von KingofKning Beitrag anzeigen
    Danke,

    das mit dem Label on hatte ich gemacht und funktioniert auch soweit, dachte ich hätte die berühmten 2 Fliegen mit einer Klappe schlagen können.

    GG
    waren das nicht 7 Fliegen auf einem Streich?


  8. #8
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Das mit der 7 (Siegel) war das Buch.

  9. #9
    Registriert seit
    Jan 2007
    Beiträge
    1.002
    OT
    Nö: Die glorreichen 7 oder die 7 Laster...
    /OT
    kf

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Die Stoßstange ist aller Laster Anfang.

    Zitat Zitat von camouflage Beitrag anzeigen
    OT
    Nö: Die glorreichen 7 oder die 7 Laster...
    /OT

  11. #11
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Zitat Zitat von malzusrex Beitrag anzeigen
    waren das nicht 7 Fliegen auf einem Streich?

    Wenn Fliegen hinter Fliegen fliegen, fliegen Fliegen Fliegen hinterher.

    Trink 3 Kölsch und sag das mal schnell.....

    GG

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
  •