-
Update mit Inhalt aus anderer Tabelle
Hallo,
folgendes Problem:
ich habe 2. Tabellen:
A.TEILENR
A.PREIS
B.TEILENR
B.PREIS
B.CHECK
jetzt möchte ich in Tabelle A das feld PREIS mit dem Wert von Tabelle B Updaten. Aber nur wenn B.CHECK = 0.
Wie mache ich das ? irgendwie muss ich ja joinen ?
Vielen Dank
linguin
-
PHP-Code:
Update TableA as a Set a.Preis = (Select b.Preis From TableB as b Where b.TeileNr = a.TeileNr) Where exists (Select 1 From TableB as b Where b.TeileNr = a.TeileNr and b.Check = 0)
-
danke woki.
jetzt bekomme ich folgende meldung:
Wahrscheinlich liefert die erste Subabfrage mehrere Zeilen zurück. Was so auch richtig ist. kann ich das limitieren ? ein "fetch first 1 rows" funktioniert nicht.
Die Ergebnistabelle einer Anweisung SELECT INTO, einer Unterabfrage oder einer Unterauswahl einer Anweisung SET enthält mehr als eine Zeile. Es handelt sich um Fehlerart 2. Bei Fehlerart 1 wurde von einer Anweisung SELECT INTO versucht, mehr als eine Zeile zurückzugeben. Bei Fehlerart 2 wurde durch eine Unterauswahl eines Basisprädikats mehr als eine Zeile erstellt. Es ist nur eine Zeile zulässig. Fehlerbeseitigung: Die Auswahl so ändern, dass nur eine Ergebniszeile zurückgegeben wird, und die Anforderung wiederholen. Zur Verarbeitung mehrerer Ergebniszeilen müssen die Anweisungen DECLARE CURSOR, OPEN und FETCH verwendet werden. Für eine Unterabfrage können die Prädikate IN, EXISTS, ANY und ALL verwendet werden, um mehrere Ergebniszeilen zu verarbeiten. Wenn eine einzige Zeile erwartet wird, können Datenfehler, wie z. B. doppelte Zeilen, auftreten, die die Rückgabe mehrerer Zeilen bewirken.
-
wenn alle Preise gleich sind hilft distinct, sonst must du wohl selber entscheiden welches der richtige Satz ist
Robi
-
Da hilft dann wohl eher MAX/MIN/AVG, je nach dem, welcher Preis der schönere ist.
-
Dann müßte es so aussehen:
Code:
Update TableA as a
Set a.Preis = (Select min(b.Preis) <- Wahlweise min/max/avg
From TableB as b
Where b.TeileNr = a.TeileNr
and b.Check = 0)
Where exists (Select 1
From TableB as b
Where b.TeileNr = a.TeileNr
and b.Check = 0)
-
Probiers einfach aus.
Ggf. solltest du (wenn vorhanden), 0-Preise oder negative Preise ausschließen.
Similar Threads
-
By mk in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 13-07-12, 08:53
-
By synus in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 06-10-06, 15:38
-
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