[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2005
    Beiträge
    4

    Question SQL Update, Neuling-Frage

    Hallo,

    ich bin noch ziemlich neu mit SQL, sorry für die Fragestellung

    ich möchte aus einer Datei bestimmte Felder auslesen, eines davon mit einem Faktor von 1,05 multiplizieren und in ein bestimmtes Feld einer anderen Datei ausgeben (neu eintragen, nicht überschreiben)

    Bsp.

    DateiA FELD1 FELD2 FELD3
    FELD2 x 1,05 -> Ergebnis, FELD1, FELD3 -> DateiB

    Wie sollte so eine Syntax aussehn?

    Alternativ würde mir es auch weiterhelfen wenn ich aus DateiA die Felder selektieren und den Inhalt der Felder in DateiB (wobei sich die Feldnamen ändern) ausgeben kann.
    DateiA FELD1 FELD2 FELD3 -> DateiB FELDa FELDb FELDc

    Danke für Eure Hilfe

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    Insert into DateiB (Felda, Feldb, Feldc, ...)
    (select feld2*1,05 , Feld1, Feld3, ... from DateiA 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

  3. #3
    Registriert seit
    Jan 2005
    Beiträge
    4
    Hi!

    Danke für die Hilfe, ich bekomme jedoch eine Fehlermeldung:

    "Doppelter Schlüsselwert angegeben"

    mit der F1 - Hilfe kann ich leider nicht allzu viel anfangen.

    Wo könnte ich den Fehler finden?

  4. #4
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hi,

    diese Meldung bedeutet einfach das eine Schlüsselverletzung vorliegt. Es liegt z.B. eine Primärschlüssel oder ein Unique Index auf dem "FeldA". Das bedeutet der Inhalt "X" im FeldA darf nur einmal in diesem Feld in der ganzen Datenbank vorkommen. Wenn es sich um einen richtigen Primärschlüsel handelt darf er außerdem keine Nullwerte enthalten. Wenn du evtl. bereits vorhandene Sätze in der DateiA ändern willst, musst du das mit Update machen.

    Gruß

    Sascha

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    D.h., im Select der Insert-Anweisung ist über die Where-Bedingung auszuschließen, dass doppelte Sätze eingefügt werden.

    Insert into DateiB (Felda, Feldb, Feldc, ...)
    (select feld2*1,05 , Feld1, Feld3, ... from DateiA where Feld1 not in (select Felda from DateiB))
    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

Similar Threads

  1. SQL Update aus zwei Dateien mit 3 Schlüsselfeldern
    By mk in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 13-07-12, 08:53
  2. update per sql
    By steven_r in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 25-09-06, 08:22
  3. Frage zu SQL UserDefinedFunction
    By cbe in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 24-08-06, 17:30
  4. Update Syntax SQL
    By wuwu in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 18-07-06, 15:31
  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
  •