Neu Nachkommastellen bei induvidueller Listenansicht begrenzen

Karsten Busch

Aktives Mitglied
18. November 2016
15
7
Hallo,

ich suche eine Möglichkeit in einer Individuellen Listenansicht die Kommastellen zu begrenzen. In der Spalte RQ würde eine oder gar keine Kommastelle reichen.

1588778855401.png

SELECT tPlattform.cName AS 'Plattform',
ISNULL(jAktTag.absatz, 0) AS 'Heute',
ISNULL(jGestern .absatz, 0) AS 'Gestern',
ISNULL(jAktMonat.absatz, 0) AS 'M',
ISNULL(jVorMonat.absatz, 0) AS 'LM',
ISNULL(jLetzte30Tage.absatz, 0) AS '30',
ISNULL(jLetzte3Monate.absatz, 0) AS '90',
ISNULL(jAktJahr.absatz, 0) AS 'Y',
ISNULL(jLetzte365Tage.absatz, 0) AS '365',
ISNULL(jVorjahr.absatz, 0) AS 'LY',
ISNULL(jGesamt.absatz, 0) AS 'Ges',
ISNULL(jVKDurchschnitt.vknetto, 0) 'Ø VK-Brutto',
ISNULL(jRetourenGesamt.Retourenquote, '0%') AS 'RQ'
FROM tPlattform
LEFT JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
AND DAY(tBestellung.dErstellt) = DAY(getdate())
GROUP BY nPlatform
) AS jAktTag ON jAktTag.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))
GROUP BY nPlatform
) AS jGestern ON jGestern.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
GROUP BY nPlatform
) AS jAktMonat ON jAktMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))
GROUP BY nPlatform
) AS jVorMonat ON jVorMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())
GROUP BY nPlatform
) AS jLetzte30Tage ON jLetzte30Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())
GROUP BY nPlatform
) AS jLetzte3Monate ON jLetzte3Monate.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
GROUP BY nPlatform
) AS jAktJahr ON jAktJahr.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())
GROUP BY nPlatform
) AS jLetzte365Tage ON jLetzte365Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))
GROUP BY nPlatform
) AS jVorjahr ON jVorjahr.nPlatform = tPlattform.nPlattform
JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
GROUP BY nPlatform
) AS jGesamt ON jGesamt.nPlatform = tPlattform.nPlattform
JOIN (
SELECT nPlatform, ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKNetto / tBestellung.fFaktor), 0.0)), 2) AS vknetto -- für Brutto 'fVKNetto' durch 'fVKPreis' ersetzen
FROM tbestellpos
JOIN tBestellung ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
GROUP BY nPlatform
) AS jVKDurchschnitt ON jVKDurchschnitt.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT jabsatzgesamt.nPlatform,
CONCAT((CASE WHEN jabsatzgesamt.absatz > 0.0 THEN ISNULL(retourengesamt.rm, 0.0) / jabsatzgesamt.absatz ELSE 0.0 END)*100, '%') as Retourenquote
FROM
(SELECT tbestellung.nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
GROUP BY nPlatform) AS jabsatzgesamt
LEFT JOIN
(SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key
GROUP BY nPlatform) AS retourengesamt on retourengesamt.nPlatform=jabsatzgesamt.nPlatform)
as jRetourenGesamt on jRetourenGesamt.nPlatform = tPlattform.nPlattform
UNION
SELECT 'Alle Plattformen' AS 'Plattform',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
AND DAY(tBestellung.dErstellt) = DAY(getdate())) AS 'Heute',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))) AS 'Gestern',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
AND MONTH(tBestellung.dErstellt) = MONTH(getdate())) AS 'Akt. Monat',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))) AS 'Vormonat',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())) AS 'Letzte 30 Tage',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())) AS 'Letzte 3 Monate',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())) AS 'Akt. Jahr',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())) AS 'Letzte 365 Tage',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))) AS 'Vorjahr',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
) AS 'Gesamt',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(AVG(tbestellpos.fVKPreis / tBestellung.fFaktor), 0.0)), 2) AS vknetto -- für Brutto 'fVKNetto' durch 'fVKPreis' ersetzen
FROM tbestellpos
JOIN tBestellung ON tBestellung.kBestellung = tbestellpos.tBestellung_kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
) AS 'Ø VK-Netto',
(SELECT CONCAT(ROUND((CASE WHEN jabsatzgesamt.absatz > 0.0 THEN retourengesamt.rm / jabsatzgesamt.absatz ELSE 0.0 END)*100, 2), '%') as Retourenquote
FROM
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tRMRetourePos.fAnzahl), 0.0)), 2) AS rm
FROM tbestellung
JOIN tRMRetoure ON tRMRetoure.kBestellung = tBestellung.kBestellung
JOIN tRMRetourePos ON tRMRetourePos.kRMRetoure = tRMRetoure.kRMRetoure
WHERE tRMRetourePos.kArtikel = @Key) AS retourengesamt
JOIN
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B') AS jabsatzgesamt on 1=1) AS Retourenquote
ORDER BY Plattform
 

Happy

Moderator
Mitarbeiter
29. Juli 2011
335
45
Hückelhoven
Guten Morgen,

eine der Möglichkeiten ist ein CAST
CAST(ISNULL(jRetourenGesamt.Retourenquote, '0%') AS DECIMAL(27,0)) AS RQ

Probier das mal aus, natürlich gibt es da noch andere Möglichkeiten, aber das ist das erste was mir da Spontan einfällt.