Abfrage: Zeige alle GP's, Wert aus Preisliste, Wert Sonderpreis falls vorhanden. Auswahl nach Artike

Hallo ukulele,

ja das ist soweit richtig. Allerdings hat nicht jeder Kunde ein Sonderpreis hinterlegt. Die Preisliste enthält jedoch jeden Artikel mit einen Standardpreis.
 
Werbung:
Okay neuer Versuch:
Code:
SELECT    -- Produktdaten
        T0.[ItemName] AS [Produkt Name],
        T1.[Price] AS [Listenpreis Liste 1],
        -- Sonderpreise zur Preisliste 1 mit Kundenbezug
        T3.[CardCode] AS [Kunden Nr.],
        T3.[CardName] AS [Kunde],
        T2.[Price] AS [Sonderpreis zur Preisliste 1],
        T2.[Discount] AS Rabatt,
        T2.[Currency],
        -- Weitere Sonderpreise, falls vorhanden
        T4.[ListNum] AS [Preisliste],
        T4.[Price] AS [Sonderpreis],
        T4.[Discount] AS Rabatt,
        T4.[Currency]
FROM    OITM T0
LEFT JOIN ITM1 T1 ON T1.ItemCode = T0.ItemCode
LEFT JOIN OSPP T2 ON T2.ItemCode = T0.ItemCode
LEFT JOIN OCRD T3 ON T3.CardCode = T2.CardCode
LEFT JOIN OSPP T4 ON T4.ItemCode = T0.ItemCode
WHERE    T0.ItemCode = [%ItemCode]
AND        T1.[PriceList] = 1
AND        T2.[ListNum] = 1
AND    (    T4.[ListNum] != 1
OR        T4.[ListNum] IS NULL )
Ich tippe mal das ListNum in OSPP ist die Preislistennummer.

Es passiert folgendes: Ich lasse alle Produkte ausgeben, egal ob Preis vorhanden oder nicht (T0). Per LEFT JOIN hole ich den Standard Preis nach Preisliste 1 dazu (T1). Falls ein Kunde für das Produkt zur Preisliste 1 einen Sonderpreis in OSPP hat hole ich den Kuden (T3) und den Sonderpreis (T2) dazu.Bei mehreren Sonderpreisen zur Preisliste 1 und der Kombination Produkt / Kunde wird es mehrere Treffer geben.

Gibt es neben dem Sonderpreis noch einen weiteren Sonderpreis der nicht der Preisliste 1 zugeordnet wurde hole ich auch diesen noch (T4). Bei mehreren Sonderpreisen die nicht! zur Preisliste 1 gehören und der Kombination Produkt / Kunde wird es auch hier mehrere Treffer geben.
 
Dann weiss ich auch nicht mehr weiter. Kannst du Die betroffenen Tabelleninhalte zu einem Produkt posten? Natürlich ohne Kundenbezeichnung.
 
saptabellen7e6jkfn5o1.jpg
 
Was soll ich denn mit leeren Screenshots? Wenn dann bitte Text. Am besten ist sowieso, du testest deine Querys im SQL Management Studio.
 
Werbung:
Sry aber Spaltenüberschriften != Daten. Dein Problem besteht ja offenbar darin, das die Daten nicht so zusammen hängen wie wir das bisher angenommen haben. Dann sind die Spaltenüberschriften auf Deutsch und da gibt es Spalten wie GP-Code und Gruppencode - ganz großes Kino. Soll Code-Zahlungsbedingung die Preisliste sein? Ein wahres Puzzel...

Im Übrigen ist das SQL Management Studio ein Client, hat mit Demo Datenbank nichts zu tun. Ein Vernünftiger Client spuckt Daten in Textform aus.

Code:
SELECT    left(ItemName,3) AS ItemName,
        ItemCode
FROM    OITM
WHERE    ItemCode = [%ItemCode] -- Ein Item als Beispiel
 
SELECT    PriceList,
        Price,
        ItemCode
FROM    ITM1
WHERE    ItemCode = [%ItemCode] -- Das selbe Item
 
SELECT    Price,
        Discount,
        ItemCode,
        ListNum,
        CardCode,
FROM    OSPP
WHERE    ItemCode = [%ItemCode] -- Das selbe Item
 
SELECT    CardCode,
        left(CardName,1) AS CardName,
        ListNum
FROM    OCRD
WHERE    Cardcode IN (    SELECT    CardCode
                        FROM    OSPP
                        WHERE    ItemCode = [%ItemCode] ) -- Das selbe Item
Diese Daten dürften eigentlich nichts vertrauliches enthalten, beurteilen kannst du das am besten. Wenn ich diese Daten in einer lesbaren Form habe (gerne auch als PM je nachdem wie viel das ist) kann ich mir die in Excel kopieren und ihre Zusammenhänge verstehen. Eigentlich müssten sie alles beinhalten was du in deinem Query ausgeben möchtest.
 
Zurück
Oben