Als erstes entwickle ich in Microsoft Visual Studio IDE. Also, was ich versuche zu bekommen, ist ein Ergebnis einer Abfrage, die die Spalte nvarchar Datentyp ist. Das Ziel dieser Abfrage besteht darin, dem Benutzer zu einem bestimmten Zeitpunkt den Prozentsatz anzugeben, wie viele verschiedene Erweiterungen sich in der Datenbank befinden. Um euch besser zu erklären, ich es hier posten werde:2 Dezimalstellen in einer Nvarchar-Spalte
SELECT Filetype AS 'Extensão',
COUNT(*) AS 'Nº de ficheiros',
((COUNT(Filetype) * 100.0)/(SELECT COUNT(*) FROM infofile)) AS 'Percentagem (%)',
SUM(Filesize) AS 'Total(KB)'
FROM infofile
GROUP BY Filetype
UNION ALL
SELECT '---------------',
COUNT('Nº de extensões'),
((COUNT(Filetype) * 100)/(SELECT COUNT(Filetype) FROM infofile)),
SUM(Filesize)
FROM infofile
Also, was ich versuche, mit dieser Linie von meiner Anfrage zu bekommen ((COUNT(Filetype) * 100.0)/(SELECT COUNT(*) FROM infofile)) AS 'Percentagem (%)'
ein Ergebnis ist aber nur mit zwei Dezimalstellen und jede Zeile dieser Spalte. Die Ich habe eine Zeile ((COUNT(Filetype) * 100)/(SELECT COUNT(Filetype) FROM infofile))
, die mir die Summe des Prozentsatzes geben, der 100 sein sollte, aber das zeigt mir 100,00000 an.
Hier ist es die Ausgabe, die ich gerade bekomme.
Ist es das, was ich wirklich was, aber nach der UNION ALL Ich habe ein Ergebnis, das mir die Summe in Prozent (100,00) gibt. Es ist nicht möglich, nur 100 ohne Dezimalstellen zu bekommen. –
Ich werde Ihnen eine Antwort geben, aber es wird hässlich sein :-( –
Warum? Was ist das Problem? –