JTL-Wawi: Preise aller oder bestimmter Kundengruppen per SQL löschen

Wenn du Preisdatensätze gezielt aus der Datenbank entfernen möchtest – etwa für einen Neuimport oder eine Bereinigung – kannst du dies direkt über die Tabellen tPreis und tPreisDetail erledigen.


1. Alle Preise löschen (alle Kundengruppen)

DELETE
    tPreis
FROM
    tPreis
    LEFT JOIN tPreisDetail ON tPreis.kPreis = tPreisDetail.kPreis;

Damit werden alle Einträge aus tPreis entfernt, unabhängig von der Kundengruppe.
Da tPreisDetail über kPreis mit tPreis verknüpft ist, werden die Detailpreise anschließend automatisch als verwaiste Einträge sichtbar und sollten separat gelöscht werden:

DELETE FROM tPreisDetail WHERE kPreis NOT IN (SELECT kPreis FROM tPreis);

2. Nur bestimmte Kundengruppe löschen

DELETE
    tPreis
FROM
    tPreis
    LEFT JOIN tPreisDetail ON tPreis.kPreis = tPreisDetail.kPreis
WHERE
    tPreis.kKundenGruppe = 1;

Diese Variante entfernt ausschließlich Preise der angegebenen Kundengruppe (kKundenGruppe = 1).
Falls du mehrere Gruppen löschen willst, kannst du eine IN-Bedingung verwenden:

WHERE tPreis.kKundenGruppe IN (1, 2, 3);

3. Wichtige Hinweise

  • Vorher Backup erstellen! Das Löschen wirkt sich direkt auf alle Preisverknüpfungen aus.

  • Reihenfolge beachten: Erst tPreis, dann verwaiste Einträge aus tPreisDetail löschen.

  • Keine Abkürzungen: Verwende die vollen Tabellennamen wie oben, damit die Zuordnung klar bleibt.

  • Verwendung: Sinnvoll z. B. vor einem Massenimport über JTL-Worker, CSV-Import oder Preisautomatisierungen.

Damit lassen sich Preisstrukturen vollständig oder gezielt nach Kundengruppen zurücksetzen.

Hinweis zur Nutzung von Code-Beispielen

Die auf dieser Website bereitgestellten Code-Beispiele und Skripte dienen ausschließlich zu Demonstrations- und Lernzwecken. Die Nutzung in produktiven Umgebungen erfolgt auf eigene Verantwortung. Wir übernehmen keine Haftung für Schäden oder Datenverluste, die durch unsachgemäße Anwendung entstehen.