[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2004
    Beiträge
    13

    sql abfrage mit substring

    Hallo,

    ich versuche momentan folgendes Problem in den Griff zu kriegen:
    ich habe folgende Felder:
    - PRID (INTEGER), z.B. 1,2,3,...
    - PRYEAR (DECIMAL 4,0), z.B. 2003, 2004,...

    Jetzt brauche ich eine Abfrage, die mir aus diesen beiden Feldern folgendes Format zusammensetzt:

    AE[PRID]/[PRYEAR]
    z.B. AE0000003/03, AE0000010/04,usw.

    Das Jahr am Schluss soll nur zweistellig angezeigt werden.


    Dazu versuchte ich folgende SQL-Abfrage:
    -------------------------------------------
    select substring('AE0000000',1,9-Length(cast(prid as varchar(7)))) + cast(prid as varchar(7)) + '/' + substring(cast(pryear as char(4)),3,2)
    from hilfssto.proverw
    where PRID = [PRID]
    -------------------------------------------


    folgende Fehlermeldung gibt es dann aus:
    ---------------------------
    DB2 Table Editor Developer
    ---------------------------
    + use not valid.

    (SQL code = -402, SQL state = 42819)
    ---------------------------
    OK
    ---------------------------

    Kann mir da wer weiterhelfen?

    Jürgen

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.288
    Hallo,

    SQL kennt + nicht als Verkettung, du musst entweeder !! (Pipe Zeichen, je nach Zeichensatz) oder Concat(feld1, feld2) nehmen

    Dieter Bender

    Zitat Zitat von juergenkemeter
    Hallo,

    ich versuche momentan folgendes Problem in den Griff zu kriegen:
    ich habe folgende Felder:
    - PRID (INTEGER), z.B. 1,2,3,...
    - PRYEAR (DECIMAL 4,0), z.B. 2003, 2004,...

    Jetzt brauche ich eine Abfrage, die mir aus diesen beiden Feldern folgendes Format zusammensetzt:

    AE[PRID]/[PRYEAR]
    z.B. AE0000003/03, AE0000010/04,usw.

    Das Jahr am Schluss soll nur zweistellig angezeigt werden.


    Dazu versuchte ich folgende SQL-Abfrage:
    -------------------------------------------
    select substring('AE0000000',1,9-Length(cast(prid as varchar(7)))) + cast(prid as varchar(7)) + '/' + substring(cast(pryear as char(4)),3,2)
    from hilfssto.proverw
    where PRID = [PRID]
    -------------------------------------------


    folgende Fehlermeldung gibt es dann aus:
    ---------------------------
    DB2 Table Editor Developer
    ---------------------------
    + use not valid.

    (SQL code = -402, SQL state = 42819)
    ---------------------------
    OK
    ---------------------------

    Kann mir da wer weiterhelfen?

    Jürgen
    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
    Feb 2001
    Beiträge
    20.269
    wie wärs mit:

    'AE' concat digits(dec(prid, 7, 0)) concat '/' concat substr(digits(pryear), 3, 2)
    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

  4. #4
    Registriert seit
    Oct 2004
    Beiträge
    13
    select substring('AE' concat digits(dec(prid, 7, 0)) concat '/' concat substr(digits(pryear), 3, 2)
    from hilfssto.proverw
    where PRID = [PRID]

    gibt folgendes aus:
    ---------------------------
    DB2 Table Editor Developer
    ---------------------------
    Keyword WHERE not expected. Valid tokens: , FOR.
    (SQL code = -199, SQL state = 42601)
    ---------------------------
    OK
    ---------------------------


    ersetze ich where durch for, kommt folgendes:
    ---------------------------
    DB2 Table Editor Developer
    ---------------------------
    Token = was not valid. Valid tokens: ).
    (SQL code = -104, SQL state = 42601)
    ---------------------------
    OK
    ---------------------------

    /jk

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.269
    select 'AE' concat digits(dec(prid, 7, 0)) concat '/' concat substr(digits(pryear), 3, 2)
    from hilfssto.proverw
    where PRID = [PRID]
    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
    Oct 2004
    Beiträge
    13
    alles klar, funktioniert. Danke!!

    /jk

Similar Threads

  1. SQL Substring (Fehler 42703)
    By olbe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 28-12-06, 13:53
  2. Einfache Abfrage in COBOL/400 mit EXEC SQL
    By AS400-Anfänger in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 27-06-06, 13:18
  3. Abfrage nach <> Ziffern in SQL
    By behmer in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-05-06, 12:52
  4. sql abfrage
    By steven_r in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 17-05-06, 15:49
  5. Problem bei Abfrage bei Imbedded SQL
    By cbe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 08-06-05, 16:21

Berechtigungen

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