-
Datenänderung mit SQL
Hallo,
ich habe folgendes Problem, in einer Datenbank stehen Kundenummer, .... und auch die Vertreternummer, es muss aus einer Tabelle (Kundennummer, neue Vertreternummer) der Kundenummer die neue Vertreternummer zugeordnet werden, alle anderen Daten müssen bleiben, wie geht das per SQL ?
dnake an alle eric
-
update KundenTabelle k
set k.kundenNummer = (select v.vertreternummer
from vertreter v
where v.kundenNummer = k.kundenNummer)
D*B
 Zitat von Eric
Hallo,
ich habe folgendes Problem, in einer Datenbank stehen Kundenummer, .... und auch die Vertreternummer, es muss aus einer Tabelle (Kundennummer, neue Vertreternummer) der Kundenummer die neue Vertreternummer zugeordnet werden, alle anderen Daten müssen bleiben, wie geht das per SQL ?
dnake an alle eric
-
Code:
update KundenTabelle k
set k.kundenNummer = (select v.vertreternummer
from vertreter v
where v.kundenNummer = k.kundenNummer)
Das setzt allerdings voraus, dass es auch zu jeder Kunden-Nr. genau eine Vertreter-Nr. gibt. Sollte nicht für jede Kunden-Nr. eine Vertreter-Nr. vorhanden sein, geht dieses Statement schief!
PHP-Code:
update KundenTabelle k
set k.KundenNummer = Coalesce((select Distinct v.VertreterNummer
from Vertreter v
where k.KundenNummer = v.VertreterNummer),
k.KundenNr)
Oder besser
PHP-Code:
update KundenTabelle k
set k.KundenNummer = (select Distinct v.VertreterNummer
from Vertreter v
where k.KundenNummer = v.VertreterNummer)
where exists (select *
from KundenTabelle C
where k.KundenNr = c.KundenNummer)
Birgitta
-
... schief gehen tut, wenn man mehr als eine Vertreternummer zuordnen will, deshalb sollte man logischerweise nur eine in der Zuordnungstabelle haben, was man über eine unique constraint absichern kann, das where exists hilft da nix.
Was das coalesce angeht, da kann man über besser geteilter Meinung sein und wir sind da wohl unterschiedlicher, was zuweilen vorkommt. Aus der Sicht des Datenbankdesigns handelt es sich bei der Vertreternummer um eine typische Foreign Key Beziehung und da gibt es gute Gründe null Values zuzulassen, damit man eine referential constraint einrichten kann ohne sich eine Dummy Vertreter einzurichten, oder gar bei nicht vorhanden sein des Vertreters 0 oder blank in ein Foreign Key Feld reinzuschreiben.
Was das where exists angeht, naja, da gibt die Aufgabenstellung zuwenig her, um das exakt einzuordnen, ob die entsprechende Datei komplett ist...
D*B
 Zitat von B.Hauser
Code:
update KundenTabelle k
set k.kundenNummer = (select v.vertreternummer
from vertreter v
where v.kundenNummer = k.kundenNummer)
Das setzt allerdings voraus, dass es auch zu jeder Kunden-Nr. genau eine Vertreter-Nr. gibt. Sollte nicht für jede Kunden-Nr. eine Vertreter-Nr. vorhanden sein, geht dieses Statement schief!
PHP-Code:
update KundenTabelle k set k.KundenNummer = Coalesce((select Distinct v.VertreterNummer from Vertreter v where k.KundenNummer = v.VertreterNummer), k.KundenNr)
Oder besser
PHP-Code:
update KundenTabelle k set k.KundenNummer = (select Distinct v.VertreterNummer from Vertreter v where k.KundenNummer = v.VertreterNummer) where exists (select * from KundenTabelle C where k.KundenNr = c.KundenNummer)
Birgitta
-
DANKE
Hallo,
danke, wed das diese Woche probieren.
danke eric
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