[NEWSboard IBMi Forum]

Thema: SQL Befehl?

  1. #1
    Registriert seit
    May 2005
    Beiträge
    21

    SQL Befehl?

    Ich habe mal wieder eine Frage zu SQL:

    Wir haben eine Adressdatei (K1), in der alle Debitoren (Feld Kontoart=D), deren Kontonr. 5 stellig ist (normalerweise sind die Konten 7 stellig) im Feld Buchung eine Sperre mit "J" bekommen sollen.

    Leider kenn ich nicht den update - Befehl, der sich auf die Länge der Kontonummer bezieht.....

    UPDATE L60/K1 K1 SET K1_BUCHUNG = 'J' WHERE K1_KTOART = 'D' and K1_KTONR = ......


    Kennt jemand den korrekten Befehl?

  2. #2
    Registriert seit
    Dec 2002
    Beiträge
    301
    Ich nehme mal an, dass bei Euch die Konto-Nr. alphanumerisch ist. Dann kannst Du die Länge des Inhalts des Feldes folgendermaßen ermitteln. length(trim(K1_KTONR))
    Frank Hildebrandt

  3. #3
    Registriert seit
    May 2005
    Beiträge
    21

    SQL

    danke!

    wie binde ich das denn in den befehl ein?

    UPDATE L60/K1 K1 SET K1_BUCHUNG = 'J' WHERE K1_KTOART = 'D' and
    length(trim(K1_KTONR)) = 5

    geht das?
    das klappt irgendwie nicht...

    Eine andere Frage? Neben der Selektion nach Kontonr.länge muss ich noch nach Kontenklasse selektieren; also z.B. alles was mit 2... beginnt.

    ginge das so?

    UPDATE L60/K1 K1 SET K1_BUCHUNG = 'J' WHERE K1_KTOART = 'D' and K1_KTONR =
    '2 '

    ?



  4. #4
    Registriert seit
    Dec 2002
    Beiträge
    301
    Ist das Feld K1_KTONR denn numerisch oder alphanumerisch? Wenn es alphanumerisch ist, dass sollte es auch klappen.
    Frank Hildebrandt

  5. #5
    Registriert seit
    May 2005
    Beiträge
    21

    sql

    es ist alphanum.
    ist teste weiter....

    zu meiner 2. frage:

    UPDATE L60/K1 K1 SET K1_BUCHUNG = 'J' WHERE K1_KTOART = 'D' and K1_KTONR like ‘2’

    Konten, die mit 2 beginnen sollen ebenso ein 'J' bekommen...
    Klappt das so mit LIKE?

  6. #6
    Registriert seit
    Dec 2002
    Beiträge
    301
    Die erste Stelle der Konto-Nr. kannst Du folgendermaßen abfragen. SUBSTRING(K1_KTONR, 1, 1) = '2'
    Frank Hildebrandt

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    length und trim gibts erst ab V5R1 !

    Man kann Dezimalfelder umwandeln mittels CHAR(mynum), was dann sogar eine linksbündige Ausrichtung erzeugt.

    Allerdings, wenn das Konto rein numerisch ist gehts auch per

    dec(mykonto, 7, 0) < 100000

    Das 2. wäre "like Kontoklasse '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

  8. #8
    Registriert seit
    May 2005
    Beiträge
    21

    sql

    Der befehl klappt nicht:

    UPDATE L60/K1 K1 SET K1_BUCHUNG = 'J' WHERE K1_KTOART = 'D' and length(trim(K1_KTONR)) = 5


    Fehler: Token ANDLENGTH ungültig. Gültige Token: <ENDE DER ANWEISUNG>.

  9. #9
    Registriert seit
    May 2005
    Beiträge
    21

    sql

    ach quatsch, lag nur am leerzeichen

  10. #10
    Registriert seit
    May 2005
    Beiträge
    21

    VIELEN DANK!

    ES HAT GEKLAPPT !

    DANKE!

Similar Threads

  1. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  2. Befehl zum Konvertieren DDS in SQL
    By deni87991 in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 31-08-06, 12:05
  3. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. SQL Befehl zur Ermittlung der Monatsdifferenz
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 12-10-05, 09:58

Berechtigungen

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