Neu Kundenindividuelle Preise bei Artikeln

Ahok

Gut bekanntes Mitglied
11. September 2023
345
17
Ich habe eine eigene Übersicht zu kundenindividuellen Preis für Kundenübersicht gefunden: https://guide.jtl-software.com/jtl-wawi/kunden/beispiele-fuer-eigene-uebersichten-fuer-kunden/

Code:
SELECT
    tartikel.cArtNr AS ArtNr,
    tArtikelBeschreibung.cName AS Artikelname,
    tPreisDetail.nAnzahlAb AS 'Preis ab Menge',
    CONVERT(decimal(10,2), tPreisDetail.fNettoPreis) AS 'Nettopreis',
    CONVERT(decimal(10,2), tPreisDetail.fNettoPreis * (100 + tSteuersatz.fSteuersatz) / 100) AS 'Bruttopreis'
FROM tKunde
JOIN tPreis ON tPreis.kKunde = tKunde.kKunde
JOIN tPreisDetail ON tPreisDetail.kPreis = tPreis.kPreis
JOIN tartikel ON tartikel.kArtikel = tPreis.kArtikel
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel
    AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache
    AND tArtikelBeschreibung.kPlattform=1
JOIN (
SELECT TOP 1 kFirma, cLandISO FROM tFirma
ORDER by kFirma) AS jFirma ON 1=1
JOIN tSteuerzoneLand ON tSteuerzoneLand.cISO = jFirma.cLandISO
JOIN tSteuerzone ON tSteuerzone.kSteuerzone = tSteuerzoneLand.kSteuerzone
    AND tSteuerzone.kFirma = 0
JOIN tSteuersatz ON tSteuersatz.kSteuerzone = tSteuerzone.kSteuerzone
    AND tSteuersatz.kSteuerklasse = tartikel.kSteuerklasse
WHERE tKunde.kKunde = @Key
ORDER BY ArtNr, 'Preis ab Menge'

Allerdings habe ich keine Ahnung wie man das Umschreiben könnte, damit ich alle individuellen Preise sehe, die einem Artikel zugeordnet sind. Sollte so aussehen wie im geöffneten Artikel selbst. Hat da jemand bereits eine Lösung zu oder weiß wie man das machen kann?
 

M_P

Sehr aktives Mitglied
16. Oktober 2014
263
58
Probier mal statt

WHERE tKunde.kKunde = @Key

das:

WHERE tartikel.kArtikel = @Key

(ungetestet - wir haben keine kundenindividuellen Preise)
 
  • Gefällt mir
Reaktionen: Ahok

M_P

Sehr aktives Mitglied
16. Oktober 2014
263
58
Baue folgenden join ein:

join tAdresse on tAdresse.kKunde = tKunde.kKunde and nTyp = 1 and nStandard = 1

und oben im Select:

tAdresse.cFirma as Firma,
 
  • Gefällt mir
Reaktionen: Ahok

Ahok

Gut bekanntes Mitglied
11. September 2023
345
17
Baue folgenden join ein:

join tAdresse on tAdresse.kKunde = tKunde.kKunde and nTyp = 1 and nStandard = 1

und oben im Select:

tAdresse.cFirma as Firma,
Habe ich so gemacht, aber JTL will das nicht abspeichern und sagte "Fehler in der Abfrage: Mehrdeutiger Spaltenname: nStandard". Habe ich das falsch eingesetzt?

Code:
SELECT
 tartikel.cArtNr AS ArtNr,
 tArtikelBeschreibung.cName AS Artikelname,
 tKunde.kKunde AS Kundennummer,
tAdresse.cFirma as Firma,
 tPreisDetail.nAnzahlAb AS 'Preis ab Menge',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis) AS 'Nettopreis',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis * (100 + tSteuersatz.fSteuersatz) / 100) AS 'Bruttopreis'
FROM tKunde
JOIN tPreis ON tPreis.kKunde = tKunde.kKunde
JOIN tPreisDetail ON tPreisDetail.kPreis = tPreis.kPreis
JOIN tartikel ON tartikel.kArtikel = tPreis.kArtikel
JOIN tAdresse on tAdresse.kKunde = tKunde.kKunde and nTyp = 1 and nStandard = 1
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel
    AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache
    AND tArtikelBeschreibung.kPlattform=1
JOIN (
SELECT TOP 1 kFirma, cLandISO FROM tFirma
ORDER by kFirma) AS jFirma ON 1=1
JOIN tSteuerzoneLand ON tSteuerzoneLand.cISO = jFirma.cLandISO
JOIN tSteuerzone ON tSteuerzone.kSteuerzone = tSteuerzoneLand.kSteuerzone
 AND tSteuerzone.kFirma = 0
JOIN tSteuersatz ON tSteuersatz.kSteuerzone = tSteuerzone.kSteuerzone
 AND tSteuersatz.kSteuerklasse = tartikel.kSteuerklasse
WHERE tartikel.kArtikel = @Key
ORDER BY ArtNr, 'Preis ab Menge'
 

M_P

Sehr aktives Mitglied
16. Oktober 2014
263
58
join tAdresse on tAdresse.kKunde = tKunde.kKunde and tKunde.nTyp = 1 and tKunde.nStandard = 1

probier mal so, hatte es vorher isoliert probiert, da ging es ohne die Angabe der Tabelle tKunde
 
  • Gefällt mir
Reaktionen: Ahok

Ahok

Gut bekanntes Mitglied
11. September 2023
345
17
join tAdresse on tAdresse.kKunde = tKunde.kKunde and tKunde.nTyp = 1 and tKunde.nStandard = 1

probier mal so, hatte es vorher isoliert probiert, da ging es ohne die Angabe der Tabelle tKunde
Jetzt sind sogar noch mehr Fehler drin:
Fehler in der Abfrage: ungültiger Spaltenname nTyp
ungültiger Spaltenname nStandard
mehrdeutiger Spaltenname nStandard

Code:
SELECT
 tartikel.cArtNr AS ArtNr,
 tArtikelBeschreibung.cName AS Artikelname,
 tKunde.kKunde AS Kundennummer,
tAdresse.cFirma as Firma,
 tPreisDetail.nAnzahlAb AS 'Preis ab Menge',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis) AS 'Nettopreis',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis * (100 + tSteuersatz.fSteuersatz) / 100) AS 'Bruttopreis'
FROM tKunde
JOIN tPreis ON tPreis.kKunde = tKunde.kKunde
JOIN tPreisDetail ON tPreisDetail.kPreis = tPreis.kPreis
JOIN tartikel ON tartikel.kArtikel = tPreis.kArtikel
JOIN tAdresse on tAdresse.kKunde = tKunde.kKunde and tKunde.nTyp = 1 and tKunde.nStandard = 1
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel
    AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache
    AND tArtikelBeschreibung.kPlattform=1
JOIN (
SELECT TOP 1 kFirma, cLandISO FROM tFirma
ORDER by kFirma) AS jFirma ON 1=1
JOIN tSteuerzoneLand ON tSteuerzoneLand.cISO = jFirma.cLandISO
JOIN tSteuerzone ON tSteuerzone.kSteuerzone = tSteuerzoneLand.kSteuerzone
 AND tSteuerzone.kFirma = 0
JOIN tSteuersatz ON tSteuersatz.kSteuerzone = tSteuerzone.kSteuerzone
 AND tSteuersatz.kSteuerklasse = tartikel.kSteuerklasse
WHERE tartikel.kArtikel = @Key
ORDER BY ArtNr, 'Preis ab Menge'
 

M_P

Sehr aktives Mitglied
16. Oktober 2014
263
58
SQL:
SELECT
 tartikel.cArtNr AS ArtNr,
 tArtikelBeschreibung.cName AS Artikelname,
 tKunde.kKunde AS Kundennummer,
tAdresse.cFirma as Firma,
 tPreisDetail.nAnzahlAb AS 'Preis ab Menge',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis) AS 'Nettopreis',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis * (100 + tSteuersatz.fSteuersatz) / 100) AS 'Bruttopreis'
FROM tKunde
JOIN tPreis ON tPreis.kKunde = tKunde.kKunde
JOIN tPreisDetail ON tPreisDetail.kPreis = tPreis.kPreis
JOIN tartikel ON tartikel.kArtikel = tPreis.kArtikel
JOIN tAdresse on tAdresse.kKunde = tKunde.kKunde and tAdresse.nTyp = 1 and tAdresse.nStandard = 1
JOIN dbo.tSpracheUsed ON tSpracheUsed.nStandard = 1
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel
    AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache
    AND tArtikelBeschreibung.kPlattform=1
JOIN (
SELECT TOP 1 kFirma, cLandISO FROM tFirma
ORDER by kFirma) AS jFirma ON 1=1
JOIN tSteuerzoneLand ON tSteuerzoneLand.cISO = jFirma.cLandISO
JOIN tSteuerzone ON tSteuerzone.kSteuerzone = tSteuerzoneLand.kSteuerzone
 AND tSteuerzone.kFirma = 0
JOIN tSteuersatz ON tSteuersatz.kSteuerzone = tSteuerzone.kSteuerzone
 AND tSteuersatz.kSteuerklasse = tartikel.kSteuerklasse
WHERE tartikel.kArtikel = @Key
ORDER BY ArtNr, 'Preis ab Menge'
 
  • Gefällt mir
Reaktionen: Daniela D. und Ahok

Ahok

Gut bekanntes Mitglied
11. September 2023
345
17
SQL:
SELECT
 tartikel.cArtNr AS ArtNr,
 tArtikelBeschreibung.cName AS Artikelname,
 tKunde.kKunde AS Kundennummer,
tAdresse.cFirma as Firma,
 tPreisDetail.nAnzahlAb AS 'Preis ab Menge',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis) AS 'Nettopreis',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis * (100 + tSteuersatz.fSteuersatz) / 100) AS 'Bruttopreis'
FROM tKunde
JOIN tPreis ON tPreis.kKunde = tKunde.kKunde
JOIN tPreisDetail ON tPreisDetail.kPreis = tPreis.kPreis
JOIN tartikel ON tartikel.kArtikel = tPreis.kArtikel
JOIN tAdresse on tAdresse.kKunde = tKunde.kKunde and tAdresse.nTyp = 1 and tAdresse.nStandard = 1
JOIN dbo.tSpracheUsed ON tSpracheUsed.nStandard = 1
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel
    AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache
    AND tArtikelBeschreibung.kPlattform=1
JOIN (
SELECT TOP 1 kFirma, cLandISO FROM tFirma
ORDER by kFirma) AS jFirma ON 1=1
JOIN tSteuerzoneLand ON tSteuerzoneLand.cISO = jFirma.cLandISO
JOIN tSteuerzone ON tSteuerzone.kSteuerzone = tSteuerzoneLand.kSteuerzone
 AND tSteuerzone.kFirma = 0
JOIN tSteuersatz ON tSteuersatz.kSteuerzone = tSteuerzone.kSteuerzone
 AND tSteuersatz.kSteuerklasse = tartikel.kSteuerklasse
WHERE tartikel.kArtikel = @Key
ORDER BY ArtNr, 'Preis ab Menge'
Tausend Dank für die Hilfe! Das hat geklappt 🙂
 

Daniela D.

Mitglied
3. April 2023
5
1
Hi all, ich habe selbiges Anliegen.
Erstmal vielen Dank für die hilfreichen Tips 🙂
Auch ich fand die "eigene Übersicht zu kundenindividuellen Preisen für Kundenübersicht": https://guide.jtl-software.com/jtl-wawi/kunden/beispiele-fuer-eigene-uebersichten-fuer-kunden/
und auch ich brauche alle individuellen Preise, die einem Artikel zugeordnet sind.

Nun hab ich mein JTL extra aktualisiert und den hier vorgeschlagenen SQL Code eingetragen, aber da wird mir nix angezeigt. Nur "keine Daten vorhanden" (Kunde ist natürlich angewählt).

Der unveränderte Code von JTL (Link oben) funktioniert.
Woran könnte das liegen?
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
9.218
1.958
Um alle Kundenindividuellen Preise zu sehen, die einem Artikel zugeordnet sind, musst Du nur den Artikel anklicken und unten links den Reiter Preise entsprechend einstellen. Dafür braucht es keine eigene Abfrage.
 
  • Gefällt mir
Reaktionen: Daniela D.

Daniela D.

Mitglied
3. April 2023
5
1
Um alle Kundenindividuellen Preise zu sehen, die einem Artikel zugeordnet sind, musst Du nur den Artikel anklicken und unten links den Reiter Preise entsprechend einstellen. Dafür braucht es keine eigene Abfrage.
Danke für deine Antwort, aber ich fürchte ich hatte mich undeutlich ausgedrückt. Die "individuellen Preise" sind nicht je Kunde, sondern je Verkauf - z.B. bei Preisen auf Verhandlungsbasis. Ich brauche also jeweils den Preis, zu dem der Artikel tatsächlich verkauft wurde.
Und was meinst du mit "entsprechend einstellen"? (Sorry, falls das eine dumme Frage ist, aber die Spaltenbreite meinst du sicher nicht)
 

Enrico W.

Administrator
Mitarbeiter
27. November 2014
9.218
1.958
Mit einstellen meinte ich, dass man den Reiter Preise auswählt und darin dann die Kundenindividuellen Preise.

Da Kundenindividuelle Preise im Artikel hinterlegt werden und du diese nicht suchst, solltest Du Deine Anforderungen bitte genau definieren. Nach meinem Verständnis suchst du gerade die Verkaufspreise. Wo genau du diese dann angezeigt bekommen möchtest, weiß ich aber dann auch nicht sicher.
 

Internette

Aktives Mitglied
11. Juni 2018
4
0
SQL:
SELECT
 tartikel.cArtNr AS ArtNr,
 tArtikelBeschreibung.cName AS Artikelname,
 tKunde.kKunde AS Kundennummer,
tAdresse.cFirma as Firma,
 tPreisDetail.nAnzahlAb AS 'Preis ab Menge',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis) AS 'Nettopreis',
 CONVERT(decimal(10,2), tPreisDetail.fNettoPreis * (100 + tSteuersatz.fSteuersatz) / 100) AS 'Bruttopreis'
FROM tKunde
JOIN tPreis ON tPreis.kKunde = tKunde.kKunde
JOIN tPreisDetail ON tPreisDetail.kPreis = tPreis.kPreis
JOIN tartikel ON tartikel.kArtikel = tPreis.kArtikel
JOIN tAdresse on tAdresse.kKunde = tKunde.kKunde and tAdresse.nTyp = 1 and tAdresse.nStandard = 1
JOIN dbo.tSpracheUsed ON tSpracheUsed.nStandard = 1
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel
    AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache
    AND tArtikelBeschreibung.kPlattform=1
JOIN (
SELECT TOP 1 kFirma, cLandISO FROM tFirma
ORDER by kFirma) AS jFirma ON 1=1
JOIN tSteuerzoneLand ON tSteuerzoneLand.cISO = jFirma.cLandISO
JOIN tSteuerzone ON tSteuerzone.kSteuerzone = tSteuerzoneLand.kSteuerzone
 AND tSteuerzone.kFirma = 0
JOIN tSteuersatz ON tSteuersatz.kSteuerzone = tSteuerzone.kSteuerzone
 AND tSteuersatz.kSteuerklasse = tartikel.kSteuerklasse
WHERE tartikel.kArtikel = @Key
ORDER BY ArtNr, 'Preis ab Menge'
Hallo,

ich hatte diese Abfrage im Forum gefunden, mich gefreut und sie ausgiebig genutzt, aber nach Update auf 1.11.5 funktioniert sie leider nicht mehr. Weiß jemand, welche der Variablen sich durch das Update verändert haben könnte, oder warum es jetzt nicht mehr funktioniert? Habe leider zu wenig Ahnung von SQL, um mich zu trauen, das selbst herauszufinden...
 

M_P

Sehr aktives Mitglied
16. Oktober 2014
263
58
Wir sind noch bei 1.10 und da geht die Abfrage noch, kann also leider nicht testen.
 

Ähnliche Themen