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.