Neu Grafana SQL Abfragen Beispiele

garifulin

Sehr aktives Mitglied
10. Januar 2019
324
51
mal schnell zusammengeklickert

SELECT dShopStart AS 'Abgleich Start',dShopEnde AS 'Abgleich Ende' , DATEDIFF(SECOND, dShopStart, dShopEnde) AS 'Dauer in s' FROM eazybusiness.dbo.tWorkerInfo
 
  • Gefällt mir
Reaktionen: kelvin.

marinw

Aktives Mitglied
2. August 2020
36
9
auch wenn es relativ einfach ist. Ich habe mir eine kleine Übersicht gebastelt mit "Allgemeinen Informationen" bei meinem Dashboard.


Code:
DECLARE @jetzt datetime = CONVERT(datetime, GETDATE())
DECLARE @abholung datetime
DECLARE @abholungdate datetime = CONVERT(date, GETDATE())
DECLARE @abholungtime datetime = CONVERT(time, '15:00:00')
SET @abholung = DATEADD(day, DATEDIFF(day, 0, @abholungdate), @abholungtime)

IF @jetzt > @abholung
BEGIN
    SET @abholungdate = DATEADD(day, 1, @abholungdate)
    SET @abholung = DATEADD(day, DATEDIFF(day, 0, @abholungdate), @abholungtime)
END

SELECT
    CONVERT(VARCHAR(10), GETDATE(), 104) AS Datum,
    DATENAME(WEEKDAY, GETDATE()) AS Wochentag,
    CONVERT(VARCHAR(8), GETDATE(), 108) AS Uhrzeit,
    CONVERT(VARCHAR(8), @abholungtime, 108) AS Abholung_Uhrzeit

Unbenannt.PNG
Natürlich kann man damit auch spielen und nur einzelne Teile davon zeigen.
 

marinw

Aktives Mitglied
2. August 2020
36
9
Hast du da noch Designzeugs gemacht bzw hättest du eine Jason davon??
Moin ich habe kein Designzeugs in einer Json Datei hinzugefügt.

Sondern die Base Farbe auf Blau geändert.
Und unter Cell Options den Cell Type auf colored background & background display mode auf basic.
Visualization ist Table
Column alignment ist center

Dann sollte es genauso aussehen. Hat es bei dir funktioniert @garifulin ?
 

marinw

Aktives Mitglied
2. August 2020
36
9
Moin,
nutzt jemand von euch Grafana auch für Auswertung außerhalb des Lagers? Wenn ja wie sieht es bei euch aus?
Ich weiß einige Dinge kann man in dem Dashboard in JTL abbilden, kaufe ich, aber wenn man sich die Mühe macht kann man es doch auch/zusätzlich in Grafana nachbauen ;).Hier stellt sich mir gerade die Frage gibt es eig. auch die Möglichkeit zu sehen wie die SQL-Abfragen in dem Statistik Profil aussehen in der JTL ?

Für mich wäre tatsächlich spannend zu sehen Retouren-Anzahl pro Tag/Monat von welchen Verkaufskanal, OTIF, CLV, Welcher Kunde in welchem Rhythmus bestellt und jetzt wie viele Tage er außerhalb dieses Musters liegt, Tagesumsatz je Plattform & Marge, sowie der Monatsumsatz je Plattform/Kundenkategorie & Marge.
 

HMside

Aktives Mitglied
14. April 2019
51
14
Hallo zusammen,

eine Frage an die SQL-Experten unter Euch. In den ganzen Beispielen sehe ich immer...

Code:
BEGIN TRANSACTION;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
meine Abfrage..
COMMIT TRANSACTION;

sollte man die TRANSACTION ISOLATION LEVEL für solche Abfragen immer auf READ UNCOMMITTED setzen und was ist der technische Hintergrund?
 

sjk

Sehr aktives Mitglied
16. Januar 2019
345
123
Moin zusammen,
Wir haben kürzlich angefangen, ein kleines Dashboard für das Lager zu bauen und ich habe ein paar Panels von euch eingebaut. Hier sind zwei weitere Panels:

Anzahl lieferbare Aufträge je Lager:
Gibt euch alle vorhandenen Lagernamen in der ersten Spalte und die jeweils lieferbaren Aufträge in der zweiten Spalte aus. Durch den left join seht ihr dabei immer alle Lager. Wenn alles erledigt ist, wird euch für das jeweilige Lager also eine Null angezeigt, die ihr dann riesig & grün machen könnt :) Mit einer WHERE clause könnt ihr natürlich auch nur bestimmte Lager rausziehen.
Wir nutzen Stat mit Show -> All Values und Fields -> lieferbar. Dann wird eine Kachel pro Lager angezeigt, dir ihr mit Background Gradient o.ä. und Thresholds beliebig einfärben könnt. Ginge aber auch ganz einfach mit Table.
SQL:
BEGIN TRANSACTION;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT tWarenLager.cName AS 'Lager', COUNT(lvAuftrag.kWarenlager) AS 'lieferbar'
FROM tWarenLager
LEFT JOIN Versand.lvAuftrag AS lvAuftrag
    ON tWarenLager.kWarenLager = lvAuftrag.kWarenlager
    AND (lvAuftrag.nIstBezahlt = 1)
    AND (lvAuftrag.kRueckhalteGrund = 0)
    AND (lvAuftrag.nAuftragStatus = 0)
    AND (lvAuftrag.nPickstatus IS NULL OR lvAuftrag.nPickstatus = 0)
    AND (lvAuftrag.nVersandstatusEigen = 2)
    AND (lvAuftrag.kWarenlager != '0')
GROUP BY tWarenLager.cName
ORDER BY tWarenLager.cName DESC;
COMMIT TRANSACTION;
lieferbarlager.png

Relative Versandgeschwindigkeit heute: (WIP)
Disclaimer:
- Die Artikelmenge von Aufträgen mit mehr als 130 Artikeln wird stillschweigend unterschlagen. Das ist bei uns in etwa die Grenze, ab wann wir mit Spedition versenden
- Ergibt es überhaupt Sinn, was ich da rechne? Ich habe den Verdacht, einfach die Anzahl Artikel durch die Minuten zu teilen ergäbe dasselbe Ergebnis. Vielleicht kennt hier auch eine bewährte Formel, wie man einen solchen Score üblicherweise ermittelt :)
- Der berechnete Wert hat sich bei uns zwar als sehr aussagekräftig herausgestellt, je nach Struktur/Menge eurer Aufträge und eurer Versandabläufe kann der aber auch totaler Schrott sein.
- Absolut mit der heißen Nadel gestrickt
- Ich tüdel halt so rum, eigentlich hab ich doch gar keine Ahnung von SQL ;)

Ermittelt die Anzahl der Aufträge, Positionen und Artikel der heute versendeten als auch noch zu versendenden (lieferbaren) Aufträge. Dann wird für beides die Anzahl Artikel pro Position über alle Aufträge normalisiert und mit der Anzahl Aufträge multipliziert. Diese Werte werden durch die Minuten seit dem ersten Lieferschein heute bzw. durch die Minuten bis zur Abholung geteilt und schließlich voneinander subtrahiert.
Wenn dieser Score nun negativ ist hat das Lager seit dem ersten Lieferschein langsamer gepackt als nötig, um bis zur Abholung alle Aufträge zu schaffen. Ist der Score positiv war die Geschwindigkeit heute bisher schneller als erforderlich und die Aufträge sind wahrscheinlich vor der Abholung verpackt. Nach der Abholung sowie Samstag/Sonntag steht der Wert auf 0.
Zur Visualisierung habe ich das D3 Gauge benutzt. Im Vergleich zur normalen Gauge gibt es hier nämlich einen Zeiger, der auf einem Nullpunkt ruhen kann. Das normale Gauge füllt den Ring immer von einer Seite aus.
SQL:
BEGIN TRANSACTION;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
-- mögliche POS Aufträge ausschließen
DECLARE @nPlattformPOS AS INT = 9;
-- Großaufträge ab x Artikeln unterschlagen
DECLARE @nArtikelGroßauftrag AS INT = 130;
-- Heute versendete Lieferscheine ermitteln
DECLARE @TotalLieferscheine DEC;
SELECT @TotalLieferscheine = COUNT(*) FROM Versand.lvLieferschein AS lvLieferschein
WHERE Format(lvLieferschein.dErstellt, 'dd-MM-yyyy') = Format(getdate(), 'dd-MM-yyyy') AND (lvLieferschein.nAnzahlPakete <= lvLieferschein.nAnzahlVersendetePakete) AND (lvLieferschein.nPlattformTyp <> @nPlattformPOS);
-- PRINT @TotalLieferscheine;
-- Heute versendete Positionen ermitteln
DECLARE @TotalPositionen DEC;
SELECT @TotalPositionen = SUM(PosZählen)
FROM (
    SELECT count(lvLieferschein.kLieferschein) AS PosZählen
    FROM Versand.lvLieferschein AS lvLieferschein
    LEFT JOIN tLieferscheinPos ON tLieferscheinPos.kLieferschein = lvLieferschein.kLieferschein
    WHERE Format(lvLieferschein.dErstellt, 'dd-MM-yyyy') = Format(getdate(), 'dd-MM-yyyy')
      AND (lvLieferschein.nAnzahlPakete <= lvLieferschein.nAnzahlVersendetePakete)
      AND (lvLieferschein.nPlattformTyp <> @nPlattformPOS)
    GROUP BY lvLieferschein.kLieferschein
    ) AS AnzahlPos;
-- PRINT @TotalPositionen;
-- Heute versendete Artikel ermitteln
DECLARE @TotalArtikel DEC;
SELECT @TotalArtikel = SUM(ArtikelAnzahlListe) FROM (
    SELECT SUM(tLieferscheinPos.fAnzahl) AS ArtikelAnzahlListe
    FROM Versand.lvLieferschein AS lvLieferschein
    LEFT JOIN tLieferscheinPos ON tLieferscheinPos.kLieferschein = lvLieferschein.kLieferschein
    WHERE Format(lvLieferschein.dErstellt, 'dd-MM-yyyy') = Format(getdate(), 'dd-MM-yyyy')
      AND (lvLieferschein.nAnzahlPakete <= lvLieferschein.nAnzahlVersendetePakete)
      AND (lvLieferschein.nPlattformTyp <> '9')
    GROUP BY tLieferscheinPos.kLieferschein) AS ArtikelAnzahlListe
    WHERE ArtikelAnzahlListe < @nArtikelGroßauftrag;
-- PRINT @TotalArtikel;
-- Berechnung des gewichteten Versandwerts
DECLARE @NormalisiertVersandt DEC(10,0);
SET @NormalisiertVersandt = (@TotalArtikel / @TotalPositionen) * @TotalLieferscheine;
-- PRINT @NormalisiertVersandt;
--
-- NOCH ZU VERPACKENDE
DECLARE @warenlager AS INT = 0;
-- Noch zu packende Aufträge ermitteln
BEGIN TRANSACTION;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
DECLARE @TotalAufträgeToDo DEC;
SELECT @TotalAufträgeToDo = AufträgeZählen
FROM (
    SELECT COUNT(*) AS AufträgeZählen FROM Versand.lvAuftrag AS lvAuftrag
    WHERE (lvAuftrag.nIstBezahlt = 1)
        AND (lvAuftrag.kRueckhalteGrund = 0)
        AND (lvAuftrag.nAuftragStatus = 0)
        AND (lvAuftrag.nPickstatus IS NULL OR lvAuftrag.nPickstatus = 0)
        AND (lvAuftrag.nVersandstatusEigen = 2)
        AND (lvAuftrag.kWarenlager = @Warenlager))
    AS AnzahlAufträgeToDo;
-- PRINT @TotalAufträgeToDo;
COMMIT TRANSACTION;
-- Noch zu packende Positionen ermitteln
DECLARE @TotalPositionenToDo DEC;
SELECT @TotalPositionenToDo = SUM(PosZählen)
FROM (
    SELECT count(lvAuftrag.kBestellung) AS PosZählen
    FROM Versand.lvAuftrag AS lvAuftrag
    LEFT JOIN tBestellpos ON tBestellpos.tBestellung_kBestellung = lvAuftrag.kBestellung
    WHERE (lvAuftrag.nIstBezahlt = 1)
        AND (lvAuftrag.kRueckhalteGrund = 0)
        AND (lvAuftrag.nAuftragStatus = 0)
        AND (lvAuftrag.nPickstatus IS NULL OR lvAuftrag.nPickstatus = 0)
        AND (lvAuftrag.nVersandstatusEigen = 2)
        AND (lvAuftrag.kWarenlager = @Warenlager)
        /*AND tBestellpos.tArtikel_kArtikel != '0'*/
    GROUP BY lvAuftrag.kBestellung
    ) AS AnzahlPosToDo;
-- PRINT @TotalPositionenToDo;
-- Noch zu packende Artikel ermitteln
DECLARE @TotalArtikelToDo DEC;
SELECT @TotalArtikelToDo = SUM(ArtikelAnzahlListe) FROM (
    SELECT SUM(tBestellpos.nAnzahl) AS ArtikelAnzahlListe
    FROM Versand.lvAuftrag AS lvAuftrag
    LEFT JOIN tBestellpos ON tBestellpos.tBestellung_kBestellung = lvAuftrag.kBestellung
    WHERE (lvAuftrag.nIstBezahlt = 1)
        AND (lvAuftrag.kRueckhalteGrund = 0)
        AND (lvAuftrag.nAuftragStatus = 0)
        AND (lvAuftrag.nPickstatus IS NULL OR lvAuftrag.nPickstatus = 0)
        AND (lvAuftrag.nVersandstatusEigen = 2)
        AND (lvAuftrag.kWarenlager = @Warenlager)
        /*AND tBestellpos.tArtikel_kArtikel != '0'*/
        GROUP BY tBestellpos.tBestellung_kBestellung) AS ArtikelAnzahlListe
        WHERE ArtikelAnzahlListe < @nArtikelGroßauftrag;
-- PRINT @TotalArtikelToDo;
--Berechnung des gewichteten ToDo Werts
DECLARE @NormalisiertToDo DEC(10,0);
SET @NormalisiertToDo = (@TotalArtikelToDo / @TotalPositionenToDo) * @TotalAufträgeToDo;
-- PRINT @NormalisiertToDo;
--
-- Minuten seit dem ersten Lieferschein heute ermitteln
DECLARE @MinutenSeitErstemLieferschein INT;
SELECT @MinutenSeitErstemLieferschein = DATEDIFF(MINUTE, MIN(dErstellt), GETDATE()) FROM Versand.lvLieferschein AS lvLieferschein
WHERE Format(lvLieferschein.dErstellt, 'dd-MM-yyyy') = Format(getdate(), 'dd-MM-yyyy')
    AND (lvLieferschein.nAnzahlPakete <= lvLieferschein.nAnzahlVersendetePakete)
    /*AND (lvLieferschein.nPlattformTyp <> @nPlattformPOS)*/;
-- PRINT @MinutenSeitErstemLieferschein;
-- Minuten bis zur Abholung ermitteln
DECLARE @MinutenBisZurAbholung INT;
DECLARE @abholungdate DATETIME = CONVERT(DATETIME, FORMAT(GETDATE(), 'yyyy-MM-dd') + ' ' + '12:55:00', 120);
SET @MinutenBisZurAbholung = DATEDIFF(MINUTE, GETDATE(), @abholungdate);
-- PRINT @MinutenBisZurAbholung;
-- Berechnung der Voraussage
DECLARE @ToDoScore DEC(10,2);
SET @ToDoScore = @NormalisiertToDo / @MinutenBisZurAbholung;
DECLARE @VersandtScore DEC(10,2);
SET @VersandtScore = @NormalisiertVersandt / @MinutenSeitErstemLieferschein;
DECLARE @VoraussageScore DEC(10,2);
SET @VoraussageScore = @VersandtScore - @ToDoScore;
SELECT
    CASE
        WHEN DATEDIFF(MINUTE, GETDATE(), @abholungdate) < 0 OR DATEPART(WEEKDAY, GETDATE()) IN (6, 7) THEN '0'
    ELSE @VoraussageScore
END;
COMMIT TRANSACTION;
relgeschw.png
 
  • Gefällt mir
Reaktionen: IT-WEFA
Ähnliche Themen
Titel Forum Antworten Datum
Grafana Datenbank verbindung nicht möglich? JTL-Wawi 1.8 1
Beantwortet #GEFUNDEN# Suche jemand , der uns eine (automatische) SQL Abfrage erstellen kann mit Mail Ausgabe Dienstleistung, Jobs und Ähnliches 2
Neu Erstinstallation JTL WaWi 1.8.12 - heruntergeladen wird SQL Express 2017 _statt_ der empfohlenen 2022 Version Installation von JTL-Wawi 8
Neu MS SQL Server 2022 oder MS SQL Server 2022 Express? Installation von JTL-Wawi 8
Neu SQL-Fehler bei Volltextsuche und Sonderzeichen JTL-Shop - Fehler und Bugs 0
Neu SQL-Abfrage bei Kundenanlage JTL-Wawi 1.7 2
Neu einfache SQL Verknüfpung zweier Tabellen, z.B. Artikel mit ArtikelBeschreibung 1.6.46.1 Gelöste Themen in diesem Bereich 13
Neu CSV-Datei direkt in einer SQL-Abfrage verwenden User helfen Usern - Fragen zu JTL-Wawi 3
Neu SQL Ausgabe der Varko-Auswahl eines Artikels, mehrsprachig Tabelle zwei mal auf sich Joinen? User helfen Usern - Fragen zu JTL-Wawi 5
Neu SQL Abfrage in Excel User helfen Usern - Fragen zu JTL-Wawi 12
Neu SQL-Erfahrene vor - Nach Datenrettung - fehlende Aufträge lassen sich nicht einfügen - Ideen? User helfen Usern 4
Neu Nach Installation eines neuen SQL Servers klappt die Verbindung vom Benutzer-PC zum Server-PC nicht mehr. Installation von JTL-Wawi 5
Neu Fehler SQL-Schema importieren bei Neuinstallation Installation / Updates von JTL-Shop 7
Neu Update MS SQL 2014 auf MS SQL 2022 User helfen Usern - Fragen zu JTL-Wawi 0
Neu SQL Abfrage Artikelbezeichnung auf Englisch für Artikeletikett User helfen Usern - Fragen zu JTL-Wawi 4
Neu Datenbankebene per SQL löschen Eigene Übersichten in der JTL-Wawi 6
Neu MS SQL 14 Express wird langsam voll. Welche Lienzen benötigen wir? Bitte um Hilfe Eigene Übersichten in der JTL-Wawi 27
Neu SQL Abfrage wird mehrfach ausgeführt - Ausgabe in der Übersicht falsch Eigene Übersichten in der JTL-Wawi 8
Upgrade von SQL Server 2014 auf höhere Version JTL-Wawi 1.8 4
1.8.11.0 - Worker SQL lässt System hängen JTL-Wawi 1.8 0
Neu List&Label Merkmale auf Etiketten (SQL) Gelöste Themen in diesem Bereich 3
Neu SQL Server Express 2017 auf 2022 Update Installation von JTL-Wawi 10
Neu Nach SQL Server neuinstallation Benutzer gelöscht? JTL-Wawi - Fehler und Bugs 3
Neu Versandart + Zahlungsart in Rechnungskorrektur (SQL) User helfen Usern - Fragen zu JTL-Wawi 10
SQL Abfrage via Ameise: Seriennummer u. weitere Daten JTL-Wawi 1.8 0
1.8.10.0 - SQL-Job Performance-Optimierung JTL-Wawi 1.8 24
Neu SQL 2017 auf 2022 updaten (express) User helfen Usern - Fragen zu JTL-Wawi 1
Neu SQL Abfrage über ODBC für Bewegunghistorie (WMS) Eigene Übersichten in der JTL-Wawi 4
Komplexe SQL Abfrage zu gelieferten Artikeln mit eigenen Feldern - Hilfe gesucht JTL-Wawi 1.8 1
SQL Abfrage alle Aufträge ohne Lieferschein JTL-Wawi 1.8 2
SQL ifGetPrice liefert nur netto Preise, wie komme ich an Brutto ran? JTL-Wawi 1.7 4
Neu Fragen zur Konfiguration von Datenbankdateien und Transaktionsprotokollen während der SQL Server-Installation User helfen Usern - Fragen zu JTL-Wawi 7
SQL Datenbank Änderung? JTL-Wawi 1.7 12
Neu Suche SQL für Ameisen Export "Aufträge - nicht gelieferte" User helfen Usern - Fragen zu JTL-Wawi 0
Neu Datenbestände per SQL abfregen Schnittstellen Import / Export 8
In Bearbeitung SQL Eigene Übersichten Eigene Übersichten in der JTL-Wawi 5
Kategoriezuordnung per SQL Script ändern JTL-Wawi 1.8 4
Gelöst SQL zur Abfrage von tVersand / Sendungsnummern Eigene Übersichten in der JTL-Wawi 4
Neu SQL DB Speicherplatz vs. Vergangenheitsdaten JTL-Wawi - Fehler und Bugs 26
Neu Consent Status per Smarty Var abfragen Technische Fragen zu Plugins und Templates 1
In Diskussion Lagerbestand in einem bestimmten Lager abfragen JTL-Workflows - Ideen, Lob und Kritik 1
Gutscheinwert im Shop abfragen Allgemeine Fragen zu JTL-Vouchers 1
Neu Status worker 2.0 abfragen User helfen Usern - Fragen zu JTL-Wawi 0

Ähnliche Themen