-
Mal wieder SQL
Hallo *all,
ich brauche mal wieder etwas Hilfe beim Thema SQL.
Ich habe hier einen Auftragskopf und muß über die Kundennummer den Kundenstamm lesen. Ich muß bei allen Aufträge wo der Rechnungsempfänger im Kundenstamm <> der Rechnungsempfänger im Auftrag ist den Auftrag abändern.
Um erstmal die Daten zu sehen habe ich folgendes geschrieben:
select * from ako01pf where akanr >= 130887 and akanr <= 13099
9 and akkto in
(select adkto from adr01pf where adkto = akkto and akid1 <> ad
id1)
Akanr ist die Auftragsnummer
Akkto ist die Kundennummer im Auftrag
Adkto ist die Kundennummer im Kundenstamm
AkID ist der Rechnungsempfänger
Ich bekomme dann die Fehlermeldung:
Anweisung bestätigen
Eine Unterabfrage mit einer Korrelation wurde eingegeben; es
fehlt jedoch das Qualifikationsmerkmal für:
Feld . . . . . . . . . . . . .: AKID1
Was ist da falsch?
GG
-
Das ist nur eine Warnung, bei nicht eindeutigen Namen gäbs eine Abbruchmeldung.
Für Joins wäre die Syntax:
select a.F1, a.F2, ..., b.F1, ...
from myfile a
join myfile2 b on a.k1= b.k1 and ...
Es fehlt die Qualifikation, was aber bei eindeutigen Namen egal ist.
-
Hallo *all,
ich habe jetzt das ganze mal als Update definiert und will aus dem Kundenstamm jetzt die Felder in den Auftragskopf schreiben. Ist das so richtig?
update gregor/ako01pf a
set (a.akid1, a.akid2, a.akid3, a.akid4, a.akid5) =
(select
b.adid1, b.adid2, b.adid3, b.adid4, b.adid5
from
gregor/ako01pf a
left join
gregor/adr01pf b on b.adkto = a.akkto
and b.adfa = 1 and b.adsts = 0)
where a.akanr >= 130800 and a.akanr <= 130999
and a.akfa = 1 and a.akid1 = 16129
Wobei ich das Gefühl habe das es nicht richtig ist, da ich den Auftragskopf ja 2x lese. Der wird ja dann nicht syncron sei oder?
-
Die Syntax für den Update aus anderen Dateien sieht wie folgt aus:
Code:
update AuftrKopf A
set (A.Feld1, A.Feld2) = (select B.Feld1, B.Feld2
from KundenSt B
where A.Key1 = B.Key1
and A.Key2 = B.Key2)
where exists (select C.Key1, C.Key2
from KundenSt C
where A.Key1 = C.Key1
and A.Key2 = C.Key2)
and ... weitere Where-Bedingungen
Die Auftragskopf und Kundenstamm-Dateien habe ich schon mal eingesetzt.
Birgitta
-
Danke Dir, leider liegt auf der Datei ein Trigger der das ganze verhindert. Ich müßte also den Trigger abklemmen und das geht nur dann wenn keiner drauf ist und ihn dann wieder anklemmen.
Ich finde Trigger ja nicht schlecht aber in dieser Kombination ziemlich dämlich!
GG
-
Verhindert der Trigger das, weil er auf einen Hammer läuft oder weil er SQL update verhindert.
Läuft er auf einen Hammer --> Warum ? Liblist ? LDA? ...
Außerdem kannst du einen Trigger 'inaktiv' setzen, du mußt ihn nicht abnehmen. Aber auch dazu muß die Datei frei sein.
Unsere Lösung ist 1 Trigger auf allen Dateien, der in einer Tabelle nachsieht ob er für diese Datei was tun muß(und dann den 'eigendlichen' Trigger called) .
Das kann ich jederzeit ein/aus schalten
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Hallo,
wie setzte ich denn einen Trigger auf inaktiv?
GG
-
 Zitat von KingofKning
Hallo,
wie setzte ich denn einen Trigger auf inaktiv?
GG
CL Command CHGPFTRG oder System i Navigator (auf Trigger positionieren, Rechtsclick und Disable)
... Trigger sollen Datenkonsistenz gewährleisten und verhindern, dass in den Daten herumgepfuscht wird.
Birgitta
-
Hallo, in diesem konkreten Fall sind die Trigger dazu da, um ein Duplikat des Satzes zu erzeugen um später Veränderungen nachvollziehen zu können.
Es bleibt für mich aber immer noch die Frage warum ein RPG Programm die Daten manipulieren kann und SQL darf nicht. Finde ich nicht logisch.
GG
-
daher die Frage...
Was geschied wenn der trigger drauf ist, und du den sql-update machst.
Wie lautet die Fehlermeldung?
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Kann ich Dir sagen wenn ich morgen wieder in der Firma bin und mir meine letzten SQL Statements angezeigt werden..
Arbeite zur Zeit von zu Hause aus.
GG
-
Schau mal ins Joblog. Der Trigger läuft wahrscheinlich auf einen Fehler, der den Update verhindert (Libl?).
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By malzusrex in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 19-09-06, 11:04
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
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