Neu Statistik über noch nie verkaufte Artikel

andiarbeit

Sehr aktives Mitglied
17. Juni 2018
333
94
Nein, bei mir gehts nur darum eine Kategorie (mit Unterkategorien) mit Werkstatt-Tätigkeiten auszuschließen. Die verwässert mir sonst die restliche Auswertung.
 

MichaelH

Sehr aktives Mitglied
17. November 2008
14.457
1.881
Statistiken würde ich immer über Warengruppen machen und nie über Kategorien, denn man kann Artikel gar nicht fix 1 Kategorie zuordnen, sofern der Artikel in mehreren Kategorien vorkommt - und das kann irgendwann die Statistik verfälschen.
 

frankell

Sehr aktives Mitglied
9. September 2019
2.234
674
Flensburg
In der Tat wäre es am besten, auf die Warengruppe abzustellen. Ginge das auch?

Ich habe zwar auch den notwendigen rekursiven Code parat, aber der macht die Abfrage schätzungsweise dreimal so lang und damit deutlich weniger selbsterklärend (und auch deutlich weniger wartungsfreundlich).
 

John

Sehr aktives Mitglied
3. März 2012
3.887
942
Berlin
Jo, Kategorien sind schmerzhaft, auch weil sich kKategorie nicht ändert, wenn man sie später verschiebt.
Besser Warengruppen...
 

frankell

Sehr aktives Mitglied
9. September 2019
2.234
674
Flensburg
In der Tat wäre es am besten, auf die Warengruppe abzustellen. Ginge das auch?

Ich habe zwar auch den notwendigen rekursiven Code parat, aber der macht die Abfrage schätzungsweise dreimal so lang und damit deutlich weniger selbsterklärend (und auch deutlich weniger wartungsfreundlich).
@andiarbeit, Frage ging an Dich. :)
Vielleicht unterscheiden sich die Artikel in der betreffenden Wurzelkategorie, dass sie eine eigene Warengruppe bekommen können.
Wie gesagt, nach Wurzelkategorie zu filtern ist auch möglich, aber weniger ratsam.
 

andiarbeit

Sehr aktives Mitglied
17. Juni 2018
333
94

MrM

Aktives Mitglied
13. Oktober 2023
18
4
@frankell Meine Warengruppen wären ganz ordentlich gepflegt. Ich müsste dann nur eine Warengruppe ausschließen. Wie würde das gehen?
SQL:
SELECT

Artikel.cArtNr Artikelnummer

,Artikel.cName Artikelname

,ISNULL (tWarengruppe.cName,'Warengrp leer') AS Warengruppe

FROM vStandardArtikel Artikel

LEFT JOIN tWarengruppe

    ON tWarengruppe.kWarengruppe = Artikel.kWarengruppe

WHERE

--Nur Aktive Artikel

Artikel.cAktiv ='Y'

--Ausgeschlossene Warengruppen

AND tWarengruppe.cName NOT IN ('Gruppe1','Gruppe2')

-- Nur Artikel wo kein Auftrag vorhanden der komplett geliefert ist

AND NOT EXISTS(SELECT 1 FROM Verkauf.tAuftragPosition tAuftragPosition

    JOIN Verkauf.tAuftrag tAuftrag

        ON tAuftrag.kAuftrag = tAuftragPosition.kAuftrag

    WHERE tAuftragPosition.kArtikel=Artikel.kArtikel

    AND tAuftrag.nKomplettAusgeliefert=1)

Eigene Übersicht ist eigentlich nicht das ganz richtig Werkzeug, weil die Abfrage bei jedem Artikel klick passiert was Leistung schluckt. Aber wenn keine anderen Datenbank bzw Berichts Tools im Zugriff dann ist es besser als nichts.
 

frankell

Sehr aktives Mitglied
9. September 2019
2.234
674
Flensburg
@frankell Meine Warengruppen wären ganz ordentlich gepflegt. Ich müsste dann nur eine Warengruppe ausschließen. Wie würde das gehen?
Das ginge dann so:

SQL:
SELECT
    ART.cArtNr,
    ART.cName,
    0 AS QTY
FROM vStandardArtikel AS ART
LEFT JOIN Verkauf.tAuftragPosition AS AP ON ART.kArtikel = AP.kArtikel
LEFT JOIN Verkauf.tAuftrag AS A ON AP.kAuftrag = A.kAuftrag
WHERE ART.kWarengruppe <> (SELECT kWarengruppe FROM tWarengruppe WHERE cName = '[Name Warengruppe]'
GROUP BY ART.cArtNr, ART.cName
HAVING SUM(CASE WHEN CAST(A.dErstellt AS DATE) > '2022-12-31' THEN 1 ELSE 0 END) = 0
ORDER BY ART.cName ASC;

Du müsstest nur [Name Warengruppe] durch den Namen dieser einen Warengruppe ersetzen.
 

RecamboSL

Aktives Mitglied
24. Mai 2023
2
0
Mann kann auch das nutzen. Habe selber codiert.

/*
Artikel mit Lagerbestand,
die entweder nie verkauft wurden
oder deren letzter Verkauf vor @DatumVerkauf liegt,
und deren erster Lagerzugang vor @DatumLager liegt.
Mit aktuellem Lagerplatz (aus vWarenlagerPlatzArtikel + tWarenLagerPlatz).
JTL-Wawi 1.10.x
*/

DECLARE @DatumVerkauf DATE = '2025-03-01'; -- Grenze für Letzter Verkauf (hier manuell Datum einsetzen)
DECLARE @DatumLager DATE = '2025-01-01'; -- Grenze für Erster Lagerzugang (hier manuell Datum einsetzen)

WITH CTE_Bestand AS (
SELECT
we.kArtikel,
MIN(TRY_CONVERT(DATE,we.dErstellt)) AS ErsteLagerung, -- ältester Lagerzugang
SUM(we.fAnzahl - ISNULL(wo.fAnzahl,0)) AS AktuellerBestand
FROM dbo.tWarenLagerEingang AS we
LEFT JOIN (
SELECT
kWarenLagerEingang,
SUM(fAnzahl) AS fAnzahl
FROM dbo.tWarenLagerAusgang
GROUP BY kWarenLagerEingang
) AS wo ON we.kWarenLagerEingang = wo.kWarenLagerEingang
WHERE TRY_CONVERT(DATE,we.dErstellt) IS NOT NULL
AND TRY_CONVERT(DATE,we.dErstellt) <= GETDATE() -- keine zukünftigen Daten
GROUP BY we.kArtikel
),

CTE_LetzterVerkauf AS (
SELECT
ap.kArtikel,
MAX(TRY_CONVERT(DATE,a.dErstellt)) AS LetzterVerkauf
FROM Verkauf.tAuftragPosition AS ap
JOIN Verkauf.tAuftrag AS a ON ap.kAuftrag = a.kAuftrag
WHERE TRY_CONVERT(DATE,a.dErstellt) IS NOT NULL
GROUP BY ap.kArtikel
),

-- aktueller Lagerplatz mit Bestand > 0 (aus vWarenlagerPlatzArtikel + tWarenLagerPlatz)
CTE_AktuellerLagerplatz AS (
SELECT
v.kArtikel,
lp.cName AS Lagerplatz,
ROW_NUMBER() OVER(PARTITION BY v.kArtikel ORDER BY v.fAnzahl DESC) AS rn
FROM dbo.vWarenlagerPlatzArtikel AS v
JOIN dbo.tWarenLagerPlatz AS lp ON v.kWarenLagerPlatz = lp.kWarenLagerPlatz
WHERE v.fAnzahl > 0
)

SELECT
a.cArtNr AS [Artikelnummer],
ab.cName AS [Artikelbezeichnung],
CAST(s.AktuellerBestand AS int) AS [Bestand],
s.ErsteLagerung AS [Erster Lagerzugang],
ISNULL(CONVERT(varchar(10),v2.LetzterVerkauf,104),'Nie verkauft') AS [Letzter Verkauf],
al.Lagerplatz AS [Aktueller Lagerplatz]
FROM dbo.tArtikel AS a
JOIN dbo.tSpracheUsed AS sp
ON sp.nStandard = 1
JOIN dbo.tArtikelBeschreibung AS ab
ON a.kArtikel = ab.kArtikel
AND ab.kSprache = sp.kSprache
AND ab.kPlattform = 1
JOIN CTE_Bestand AS s
ON a.kArtikel = s.kArtikel
LEFT JOIN CTE_LetzterVerkauf AS v2
ON a.kArtikel = v2.kArtikel
LEFT JOIN CTE_AktuellerLagerplatz AS al
ON a.kArtikel = al.kArtikel AND al.rn = 1 -- nur der erste Lagerplatz (höchster Bestand)
WHERE
s.AktuellerBestand > 0 -- Bestand vorhanden
AND (v2.LetzterVerkauf IS NULL OR v2.LetzterVerkauf < @DatumVerkauf) -- nie verkauft ODER letzter Verkauf vor @DatumVerkauf
AND s.ErsteLagerung < @DatumLager -- Lagerzugang vor @DatumLager
ORDER BY v2.LetzterVerkauf;
 
Ähnliche Themen
Titel Forum Antworten Datum
Statistik über Zahlungsmoral der Kunden / Zahlungsverzug möglich? JTL-Wawi 1.9 4
Statistik - Artikelanzahl pro Auftrag JTL-Wawi 1.10 1
Statistik: Amazon.de, .be., .fr etc. zusammenfassen zu Amazon (alle Länder) JTL-Wawi 1.9 2
Gewinn wird in Statistik nicht angezeigt JTL-Wawi 1.10 3
Keine Datensicherung über ODBC möglich JTL-Wawi 1.10 1
Neu Kartonagen nicht mehr über Workflow auswählbar nach Update auf 1.11.3 JTL-Workflows - Ideen, Lob und Kritik 0
Neu Materialeinsatz Berechnung über EKNetto JTL Ameise - Eigene Exporte 1
Neu Übergabe Versandlaber an Fulfiller möglich über FFN standallone aber nicht über FFN mit angebundeener JTL-WAWI Arbeitsabläufe in JTL-Wawi 0
Neu Staffelpreise Variantenartikel über alle Varianten User helfen Usern - Fragen zu JTL-Wawi 0
Sammelbuchung bei Zahlungsausgang über das Zahlungsmodul JTL-Wawi 1.10 0
Überverkäufe über Workflow setzen JTL-Wawi 1.10 2
Neu Shop über verschieden Domains in gewünschter Sprache aufrufen ? Betrieb / Pflege von JTL-Shop 5
Ausliefern Workflow über API JTL-Wawi 1.9 6
Neu JTL-Shop Admin Bereich und Shop nur noch 504 Gateway Time-out ( Hosting über JTL ) User helfen Usern - Fragen zu JTL-Wawi 4
Probleme mit dem Einstellen von Artikeln auf Amazon über JTL Wawi mit dem Lister 2.0 Amazon-Lister - Fehler und Bugs 6
Neu Auftrag über WaWi versenden Arbeitsabläufe in JTL-Wawi 3
Über 100 Bestellungen von SCX nicht importiert kaufland.de - Anbindung (SCX) 1
Neu Probleme mit der Email über jtl hosting (plesk) User helfen Usern 2
Neu Fehlermeldungen beim Hochladen von Artikel über Amazon Lister 2.0 Amazon-Lister - Fehler und Bugs 1
Neu Registrierung über amazonpay nicht möglich Plugins für JTL-Shop 0
Merkmalfilter als Leiste über Artikelliste möglich??? Einrichtung JTL-Shop5 3
Neu Kein CN22 über DHL JTL-ShippingLabels - Fehler und Bugs 4
Defekt-Artikel nach Retoure über WMS nicht mehr in JTL-Wawi sichtbar JTL-Wawi 1.10 2
In Bearbeitung Kompakte Kasse gesucht mit der auch Kartenzahlung über 50 € funktioniert? JTL-POS - Fragen zu Hardware 5
Neu Zahlungsimport über CSV ... Ausgangszahlung ? JTL-Wawi - Fehler und Bugs 0
Datenbank ist über 800gb groß Hilfe !!! JTL-Wawi 1.9 23
Temu Coupon (ALB496107) Aktion: Spare 100€ noch heute JTL-Wawi 1.7 0
Bedarfsermittlung ignoriert verkaufte, aber noch nicht gelieferte Artikel (Zulauf schon verplant) JTL-Wawi 1.9 1
Neu Fehlerhafte Adress-Übernahme durch NinePoint (Mirakl → JTL) – wer ist noch betroffen? JTL-Wawi - Fehler und Bugs 3
Neu alte blogbilder nach wechsel immer noch sichtbar Allgemeine Fragen zu JTL-Shop 1
Beantwortet Slider nur noch mit Bild gefüllt Installation / Updates von JTL-Shop 1
Neu SQL für noch nie Verkaufte Artikel auf Marktplätzen. User helfen Usern - Fragen zu JTL-Wawi 3
Neu Unicorn2 - Marcos Software Internetseite alle weg? Läuft das Projekt noch? Schnittstellen Import / Export 4
Neu Shopify Basic mit JTL? Wie einrichten? Ist der JTL Guide noch aktuelle wegen PII Einschränkung? Shopify-Connector 2
Neu Kann nach Update auf 1.10 meine alten VCS-Lite Amazonrechnungen (noch erstellt mit 1.9.4.5.) nicht mehr drucken? Amazon-Anbindung - Fehler und Bugs 4

Ähnliche Themen