Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SQL-Insert: Fehlende Einträge nachtragen (https://www.delphipraxis.net/163509-sql-insert-fehlende-eintraege-nachtragen.html)

KPBecker 1. Okt 2011 13:54

Datenbank: Access • Version: 2003 • Zugriff über: ADO / Jet-Engine

SQL-Insert: Fehlende Einträge nachtragen
 
Hallo, Delphi-Praktiker,

ich bitte um Unterstützung bei einer SQL-Frage:

Gegeben
1. eine Tabelle mit Stammdaten (z.B. Artikel: Materialnummer, Artikelname)
2. Eine Tabelle mit Umsatzdaten (z.B. Umsatz: Datum, Menge, Materialnummer, Artikelname)


Es kann vorkommen, daß zu einem Satz aus der Umsatz-Tabelle noch kein Eintrag in der Artikel-Tabelle existiert.

Frage:
Mit einem geeigneten
"Insert into Artikel (Materialnummer, Artikelname) values (..., ...)"
soll in diesem Fall die Artikel-Tabelle fortgeschrieben werden.

Anmerkung:
- Mit einem Durchgehen der Umsatz-Tabelle Satz für Satz, Lookup in der Artikel-Tabelle und ggf. Insert über ein Delphi-Programm bekäme ich die Sache hin. Hier geht es mir aber um den eleganteren Weg und die Nutzung der Möglichkeiten von SQL.
- Die DB ist nicht normiert, der Artikelname beim Umsatz ist redundant. Es handelt sich um ein vereinfachtes Beispiel.

Mit besten Grüßen
Klaus-Peter

Jumpy 4. Okt 2011 07:55

AW: SQL-Insert: Fehlende Einträge nachtragen
 
Ansatzweise aber wahrscheinlich nicht in Access-SQL-Syntax vielleicht so:
(Annahme: Materialnummer eindeutig und als ID zu gebrauchen)

SQL-Code:
Insert Into Stammdaten(Materialnummer, Artikelname)
Values
(

Select
  Materialnummer,
  Artikelname
From
  Umsatzdaten
Where
  Materialnummer not in
  (
  Select
    Materialnummer
  From
    Stammdaten
  )

)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz