Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich Zeilen mit eindeutigen Datum-Preis-Kombinationen in einer Verkaufstabelle?

Wie aktualisiere ich Zeilen mit eindeutigen Datum-Preis-Kombinationen in einer Verkaufstabelle?

Susan Sarandon
Susan SarandonOriginal
2025-01-23 05:52:08984Durchsuche

How to Update Rows with Unique Date-Price Combinations in a Sales Table?

Aktualisieren von Verkaufsunterlagen mit eindeutigen Datum-Preis-Kombinationen

Diese Anleitung zeigt, wie Sie Verkaufsdatensätze identifizieren und aktualisieren, die innerhalb einer Verkaufstabelle eindeutige Preis-Datums-Kombinationen aufweisen. Ziel ist es, nur die Verkaufseinträge ohne Duplikate mit demselben Preis und Datum zu aktualisieren.

Eine Methode beinhaltet einen zweistufigen Prozess mit SQL-Abfragen:

Schritt 1: Identifizieren einzigartiger Kombinationen

Die folgende Abfrage wählt eindeutige saleprice- und saledate-Kombinationen zusammen mit den entsprechenden id und der Anzahl der Vorkommen aus:

<code class="language-sql">SELECT DISTINCT saleprice, saledate, id, COUNT(*) AS count
FROM sales
GROUP BY saleprice, saledate
HAVING COUNT(*) = 1;</code>

Diese Abfrage gruppiert Verkaufsdatensätze nach saleprice und saledate und filtert dann die Ergebnisse mit HAVING, um nur die Gruppen mit einer Anzahl von eins beizubehalten, was eindeutige Kombinationen bedeutet.

Schritt 2: Aktualisieren der Verkaufstabelle

Um die status dieser eindeutigen Verkaufsdatensätze auf „AKTIV“ zu aktualisieren, verwenden Sie die folgende Abfrage:

<code class="language-sql">UPDATE sales
SET status = 'ACTIVE'
WHERE id IN (
    SELECT id
    FROM sales s
    INNER JOIN (
        SELECT saleprice, saledate
        FROM sales
        GROUP BY saleprice, saledate
        HAVING COUNT(*) = 1
    ) AS unique_sales ON s.saleprice = unique_sales.saleprice AND s.saledate = unique_sales.saledate
);</code>

Diese Abfrage aktualisiert die Tabelle sales und setzt status auf „AKTIV“ für Datensätze, deren id mit den in der Unterabfrage identifizierten übereinstimmt. Die Unterabfrage ruft effizient die id-Werte ab, die eindeutigen saleprice- und saledate-Kombinationen zugeordnet sind. Das INNER JOIN stellt sicher, dass nur übereinstimmende Datensätze aktualisiert werden.

Dieser Ansatz nutzt die Leistungsfähigkeit der GROUP BY- und HAVING-Klauseln, um effektiv eine eindeutige Auswahl über mehrere Spalten hinweg durchzuführen und die gewünschten Aktualisierungen zu erreichen.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Zeilen mit eindeutigen Datum-Preis-Kombinationen in einer Verkaufstabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn