[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2010
    Beiträge
    5

    Query Problem ändern eines Textfeldes in DEC

    Hallo zusamen,

    ich bemötige ein wenig Hilfe:

    Um eine Query zu schreiben muss ich zunächst einen String zerlegen:

    421060105077401

    dieser bildet den Buchhaltungsschlüssel ab
    zerlegt sieht dieser nun so aus

    42 = t01.office
    16 = t01.verkehr
    507740 = t01.jobclock
    das sind die felder ich ich benötigt um das entsprechende record zu finden
    soweit sogut

    speicher ich das nun und verknüpfe diese Date mit der datei in der sich das record befindet

    also:
    t02.crgicd eq t01.office
    t02.crwuch eq t01.verkehr

    und
    t02.crrqrn= t01.jobclock

    bekomme ich bei der letzten verknüpfung

    eine Fehlermedung da das field t01.jobclock nicht numeric ist

    ich muss also bei dem zerlegen und speichern das field t01.jobclock als numeric speichern.
    nur wie geht das oder geht das überhaupt
    Gruß
    Alfred

  2. #2
    Registriert seit
    Feb 2008
    Beiträge
    104
    das Problem habe ich auch immer mal wieder.
    Meines Wissens kann Query aus char nicht dec machen.
    Ich löse solche Probleme andersrum, aus dem Dec Feld in der einen Datei (mittels Quey) ein char machen (Zwischendatei) und dann kann ich char mit char verknüpfen.

    Was besseres ist mir bis jetzt nicht eingefallen.

    kh

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Am Besten legt man sich eine View an, die das Ergebnis korrekt liefert und führt das Query auf die View aus:

    STRSQL
    create view MyView as (
    select ... dec(substr(field, 1, 3), 3, 0) numf1, ...
    from ...
    )
    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
    Aug 2010
    Beiträge
    5
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Am Besten legt man sich eine View an, die das Ergebnis korrekt liefert und führt das Query auf die View aus:

    STRSQL
    create view MyView as (
    select ... dec(substr(field, 1, 3), 3, 0) numf1, ...
    from ...
    )
    wenn ich das richtig verstehe kann ich das nicht im bereich "define Result Fields" machen oder?

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Dein Problem ist, dass Du über das Feld verknüpfen musst.

    Im Bereich Define Result Fields kannst Du nur Ausgabe-Felder definieren.

    Du hast nur zwei Möglichkeiten:
    1. Wie Baldur vorschlägt, Du erstellst entweder selber oder lässt von jemand eine SQL View erstellen, die nicht nur das Feld aufsplittet und konvertiert, sondern auch noch gleich mit der zweiten Datei verknüpft. Diese SQL View kannst Du dann wie jede andere Datei im Query/400 verwenden.

    2. Wie kh vorschlägt, du generierst mit Query/400 zwischen Dateien, in denen die Felder aufgesplittet sind, bzw. eine Spalte für das numerische join-Feld (mit DIGITS(NumFld)) gebildet wurde. Diese Dateien verknüpfst Du dann in einem weiteren Query.

    (Mit Trick 17 bzw. Konvertierung in Milisekunden ist es auch möglich alpha Felder in numerische Werte zu konvertieren, aber der andere Weg mit Digits aus numerischen Werten alphanumerische Werte zu generieren ist wesentlich einfacher.)

    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 2010
    Beiträge
    5
    Mir blebt nur der weg 2.

    Sorry aber ich habe sehr viel verlernt da ich das über 4 Jahre nicht mehr gemacht habe....

    dabei bin ich dann wieder im defeine result fileds da ich hier wohl das feld (das neue ausgabefeld) definiren muss um eine kopie der datei zu bekommen.

    soweit richtig?

    in field nehm ich einen neuen namen
    aber was kommt dann ins feld expression rein?

  7. #7
    Registriert seit
    Aug 2010
    Beiträge
    5
    Zitat Zitat von Khholm Beitrag anzeigen
    das Problem habe ich auch immer mal wieder.
    Meines Wissens kann Query aus char nicht dec machen.
    Ich löse solche Probleme andersrum, aus dem Dec Feld in der einen Datei (mittels Quey) ein char machen (Zwischendatei) und dann kann ich char mit char verknüpfen.

    Was besseres ist mir bis jetzt nicht eingefallen.

    kh
    nur wir mache ich das?

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn du es mit Query und Ausgabedateien benötigst, kannst du aus Dec-Feldern Char-Felder mit der Funktion DIGITS machen.
    Per SUBSTR kannst du aus Char-Feldern neue Teilfelder generieren.

    Allerdings werden deine Abfragen nicht performant werden, da du ja zwei Ausgabedateien miteinander verknüpfst, die jedoch keinen Index aufweisen.

    Versuche es besser per SQL z.B. mit QM-Query.
    Per QM-Query kannst du deinen Select stricken und in eine Datei ausgeben, die du dann nur noch per Query/400 schön formatierst.
    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

  9. #9
    Registriert seit
    Aug 2010
    Beiträge
    5
    porblem gelöst
    besten dank!

    danke & gruß
    alfred

Similar Threads

  1. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. QueryManager / Query ---> Aufruf mit Variablen
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 29-11-06, 18:07
  3. Problem mit Steuerzeichen in Datenbank?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-10-06, 10:07
  4. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39
  5. Query Manager Problem Druckausgabe
    By svente in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 03-06-04, 15:45

Berechtigungen

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