-
SQL Delete wenn Datensätze vorhanden
Hallo an Alle,
Ich möchte via SQL folgendes erreichen und hoffe ich finde hier Hilfe!
Es bestehen 2 Dateien
in der 1. Artikel in der 2.Lieferanten eindeutiger Schlüssel Lieferantennr und Sparte, nun möchte ich gerne aus der 1.Datei alle Artikel löschen deren Lieferantennummer nicht in der 2. Datei bestehen.....
Code:
DELETE FROM ARTIKEL WHERE not exists (select * from
LIEFERANT where ARTIKEL.lieferant_nr = LIEFERANT.Lieferant_nr and
ARTIKEL.sparte = LIEFERANT.sparte)
... dieses funktioniert einwandfrei
und nun mein Problem ich möchte das nur Datensätze aus der 1.Datei (Artikel) gelöscht werden wenn in der 2.Datei (Lieferanten) mindestens 1 Datensatz vorhanden ist, sprich wenn Datei 2 count(*) > 0 denn DELETE.
Vielen Dank im voraus
mfG
Bobou
-
DELETE FROM ARTIKEL WHERE (select count(*) from
LIEFERANT where ARTIKEL.lieferant_nr = LIEFERANT.Lieferant_nr and
ARTIKEL.sparte = LIEFERANT.sparte) > 0
-
Zitat von Fuerchau
DELETE FROM ARTIKEL WHERE (select count(*) from
LIEFERANT where ARTIKEL.lieferant_nr = LIEFERANT.Lieferant_nr and
ARTIKEL.sparte = LIEFERANT.sparte) > 0
Sollte es nicht
sein?
Zitat von Bobou
...1.Datei alle Artikel löschen deren Lieferantennummer nicht in der 2. Datei bestehen.....
-
mindestens 1 Datensatz ist für mich immer noch > 0
-
Vielen Dank erstmal für die Antworten,
aber irgendwie funktioniert das ganze noch nicht so wie gedacht.
Ich versuche das mal als WENN/DANN -Formel anschaulich zu machen
WENN
Code:
SELECT COUNT(*) FROM LIEFERANT
> 0
DANN
Code:
DELETE FROM ARTIKEL WHERE not exists (select * from
LIEFERANT where ARTIKEL.lieferant_nr = LIEFERANT.Lieferant_nr and
ARTIKEL.sparte = LIEFERANT.sparte)
SONST
Keine DELETE Ausführen
ENDE
-
dann probier mal das:
Code:
DELETE FROM ARTIKEL WHERE not exists (select * from
LIEFERANT where ARTIKEL.lieferant_nr = LIEFERANT.Lieferant_nr and
ARTIKEL.sparte = LIEFERANT.sparte)
AND (SELECT COUNT(*) FROM LIEFERANT) > 0
-
... and ist dein Freund, mit anderen Worten, man darf Bedingungen mit AND verknüpfen...
D*B
Zitat von Bobou
Vielen Dank erstmal für die Antworten,
aber irgendwie funktioniert das ganze noch nicht so wie gedacht.
Ich versuche das mal als WENN/DANN -Formel anschaulich zu machen
WENN
Code:
SELECT COUNT(*) FROM LIEFERANT
> 0
DANN
Code:
DELETE FROM ARTIKEL WHERE not exists (select * from
LIEFERANT where ARTIKEL.lieferant_nr = LIEFERANT.Lieferant_nr and
ARTIKEL.sparte = LIEFERANT.sparte)
SONST
Keine DELETE Ausführen
ENDE
-
Du hast es doch schon fast formuliert:
Code:
DELETE FROM ARTIKEL WHERE not exists (select * from
LIEFERANT where ARTIKEL.lieferant_nr = LIEFERANT.Lieferant_nr and
ARTIKEL.sparte = LIEFERANT.sparte)
and
(SELECT COUNT(*) FROM LIEFERANT where ARTIKEL.lieferant_nr = LIEFERANT.Lieferant_nr)>0
Similar Threads
-
By VAHLE in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 17-05-08, 00:00
-
By rr2001 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 13-12-06, 14:04
-
By ahingerl in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 08-12-06, 08:28
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 02-12-06, 19:45
-
By User23 in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 13-06-05, 09:27
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