53 Aufrufe
Gefragt in Datenbanken von cseservice Einsteiger_in (9 Punkte)
Hallo und guten Morgen,
vielleicht kann mir jemand bei einem Script für unsere SQL helfen
Folgendes Thema:

Wir haben Tabelle 1 es folgende Felder gibt

VK Preis, VK Datum, EK Preis, EK Datum, Händler

Als vergleich haben wir Tabelle 2 wo es auch diese Werte gibt

Hier bräuchten wir ein Script das vergleicht :

Wenn Händler gleich in den beiden Tabellen dann soll Geprüft werden ob es ein aktueller Datum für EK und aktuelleres Datum für VK gibt

Wenn VK Datum neuer ist dann soll der VK aus Tabelle 2 denn Wert in Tabelle 1 Überschreiben
Wenn EK Datum neuer ist dann soll der EK  aus Tabelle 2 denn Wert in Tabelle 1 Überschreiben

Hat jemand hier eine Idee wie ich sowas aussieht ?

Danke für die Hilfe

1 Antwort

0 Punkte
Beantwortet von

Um das Problem zu lösen, kannst du ein SQL-Skript erstellen, das die beiden Tabellen vergleicht und auf der Grundlage des Datums die Werte aktualisiert. Die Struktur könnte in etwa so aussehen:

Annahmen:

  • Tabelle 1: tabelle1
  • Tabelle 2: tabelle2
  • Spalten in beiden Tabellen: vk_preis, vk_datum, ek_preis, ek_datum, haendler

SQL-Skript:

UPDATE tabelle1 AS t1
JOIN tabelle2 AS t2
  ON t1.haendler = t2.haendler
SET 
  t1.vk_preis = CASE
                  WHEN t2.vk_datum > t1.vk_datum THEN t2.vk_preis
                  ELSE t1.vk_preis
                END,
  t1.ek_preis = CASE
                  WHEN t2.ek_datum > t1.ek_datum THEN t2.ek_preis
                  ELSE t1.ek_preis
                END
WHERE 
  t2.vk_datum > t1.vk_datum
  OR t2.ek_datum > t1.ek_datum;

Erklärung:

  1. JOIN: Verknüpft die beiden Tabellen basierend auf dem gemeinsamen Händler.
  2. SET: Überprüft mit zwei CASE-Statements, ob das vk_datum oder ek_datum in tabelle2 aktueller ist als in tabelle1. Wenn dies der Fall ist, werden die entsprechenden Preise (vk_preis, ek_preis) aktualisiert.
  3. WHERE: Stellt sicher, dass nur dann Änderungen vorgenommen werden, wenn das Datum in tabelle2 aktueller ist.

Damit wird in tabelle1 der neuere Preis aus tabelle2 eingetragen, wenn die Bedingungen erfüllt sind.

...