MySQL Forums
Forum List  »  German

Re: Funktion zur Ermittlung von Kundenpreisen erstellen
Posted by: Gerhard Bunzel
Date: June 11, 2021 03:04AM

Hallo Peter,

vielen Dank für Ihre Antwort.

Ich habe mal - soweit mir möglich - etwas Code geschrieben:


CREATE PROCEDURE ZeigeKundenpreise @KundenNr int(6), @ArtikelNr nvarchar(15)
AS

/* Erstellen der temporären Tabelle */
CREATE TEMPORARY TABLE temp_table LIKE KDNPREIS ENGINE=MEMORY;

/* Die zusätzlich Spalte für das Preislisten-Kennzeichen anhängen */
ALTER TABLE temp_table
ADD COLUMN `PRL_KENNZ` VARCHAR(3) NULL;

/* Die Nettopreise des Kunden für den Artikel in die temp.Tabelle schreiben */
INSERT INTO temp_table
SELECT * FROM KDNPREIS
WHERE KNR = @KundenNr AND ARTNR=@ArtikelNr;

/* Die kleinste Staffelmenge dieser Preise ermitteln */
SELECT MIN(ME_VON) AS MaxMenge
FROM temp_table;

/* Die Preislisten des Kunden ermitteln */
SELECT PRL_KENNZ FROM KDNPREIS
WHERE KNR = @KundenNr;

Dieser Select für die Preislisten müsste mit dem nächsten Select 'verbunden werden', um in den Preislistenpreisen nach allen Preislisten-Kennzeichen des Kunden zu suchen.
Oder für diese Liste der Preislisten einen SELECT mit der ArtikelNr ausführen bis der erste Eintrag gefunden wird und sich diese Preisliste merken. Dann:
SELECT * FROM PRLPREIS WHERE ARTNR=@ArtikelNr AND PRL_KENNZ='Preisliste aus der Tabelle' AND ME_VON < MaxMenge

Sobald für eine Preisliste etwas gefunden wurde, diese Preislistenpreise auch in die temporäre Tabelle schreiben und die Suche ist beendet
INSERT INTO temp_table
SELECT * FROM PRLPREIS
WHERE ARTNR=@ArtikelNr AND PRL_KENNZ=Preisliste AND ME_VON < MaxMenge;


GO;


Evtl. kann damit ja schon jemand etwas anfangen und mich bei dem Select für die Preisliste und der Suche nach den Preislistenpreisen unterstützen.
Gerne auch per PN an gerd2000@gmx.de

Vielen Dank im Voraus.

Options: ReplyQuote




Sorry, only registered users may post in this forum.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.