-
Sql-Update
Hallo Kollegen,
ich habe mal wieder ein Problem.
Ich möchte aus einer Lieferantendatei ein Feld aus der Artikeldatei angleichen. Da ich nur die interne Artikel_nr(nicht in der Lieferantendatei vorhanden) als eindeutige ID habe. Bekomme ich bei meiner folgenden SQL Anweisung die Fehlermeldung das im Ergebnisbereich mehr als eine Zeile enthalten ist. Leider habe ich keine für mich verständliche Hilfe im Forum gefunden (Sorry !)
PHP-Code:
update xxxlib/DateiA set Feld1 = (select DateiB.Feld2 from xxxLIB/Dateib WHERE DateiA.MANDANT_NR = DateiB.MANDANT_NR and DateiA.LIEFERANT_NR = DateiB.LIEFERANT_NR and current timestamp between DateiA.GUELTIG_VON and DateiA.GUELTIG_BIS and current timestamp between DateiB.GUELTIG_VON and DateiB.GUELTIG_BIS and DateiA.IFA_LIEFERANT_NR <> DAteiB.IFA_LIEFERANT_NR and DateiA.IFA_LIEFERANT_nr > 0 and DateiB.IFA_LIEFERANT_NR > 0 group by DateiB.IFA_LIEFERANT_NR)
Leider funktioniert eine Union Anweisung lt. meinem Wissen nicht in einer Set Anweisung.
Für Eure Hilfe wäre ich Dankbar
Gruß
Jenne
-
Hi,
eventuell mal ein STRDBG UPDPROD(*YES) vor dem STRQSL machen und dann im Joblog mal nach der Satznummer gucken.
Vielleicht ist es ja nur bei einem Lieferanten, ansonsten kann man daran eventuell eine zusätzliche Bedingung erkennen.
Gruss
Rince
-
Sorry Rince,
leider gibt es keine zusätzliche Verbindung. Jeder Lieferant hat mehr als 1 Artikel. Daher liegt es auch nicht an einem Lieferanten.
Das einzige was Eindeutig wäre ist die Artikel_nr in der Datei. Vielleicht funktioniert das ja mit max(DateiB.Artikel_nr) ?
Leider weiß ich nicht wo ich das einbauen könnte.
Gruß
Jenne
-
Zwischen DateiA und DateiB muss eine eindeutige Beziehung bestehen, sonst funktioniert das nicht.
Der Group by ist da nicht hilfreich, da in deiner Bezihung der Artikel keine Rolle spielt.
Wenn Feld2 auf ALLE Sätze in DateiA upgedatet werden soll, dann verwende:
select max(DateiB.Feld2) ....
Das Group by kannst du dir sparen.
Achte aber darauf, dass auch für jeden Satz in DateiA auch ein Satz in DateiB vorhanden ist.
Ist das nicht der Fall, soltest du den Update mit "where exist in (select * from DateiB where ...)" ergänzen.
-
Danke Herr Fuerchau und Rince,
jetzt hat es geklappt. Habe den max-Befehl richtig eingebaut.
Gruß
Jenne
Similar Threads
-
By mk in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 13-07-12, 08:53
-
By moskito in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 30-08-06, 17:30
-
By daniel.ludwig in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 21-07-06, 12:41
-
By wuwu in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 18-07-06, 15:31
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks