2016-12-07 2 views
0

Ich habe eine Produktdimension in meinem SSAS Cube (SSAS 2016) mit verschiedenen Preisattributen wie Verkaufspreis und Kaufpreis. Die Datenquelle ist eine MS SQL-Tabelle, wobei jede Preisspalte als numerisch definiert ist (28,12). Ich probierte verschiedene Approches, um diese Spalten als Währung zu formatieren, aber fehlgeschlagen. Das Währungsformat funktioniert für die Measuregruppen, aber nicht für die Produktdimension. Der Browser zeigt immer Werte wie ".320000000000" anstelle von "0,32" an. Ich habe keine Idee übrig, bitte helfen.SSAS Dimension für Produkte zeigt falschen Preis Format

Antwort

2

Die Option Format in Dimension Designer dest bei von Excel und ssrs ignoriert.

Um dieses Problem zu umgehen, fügen Sie in Ihrer Dimension ein string/nvarchar -Attribut hinzu, das nach Ihrem gewünschten Muster formatiert ist. Sie können das Attribut entweder in Ihrer Datawarehouse-Dimensionstabelle anzeigen oder mithilfe einer Ansicht generieren.

Zusatz: Zeichenfolge zu formatieren Sie die Tsql format Funktion nutzen konnte (unterstützt von SQL Server 2012 auf), wie im folgenden Beispiel:

SELECT FORMAT(qry.col, 'N2') AS convertedString FROM (
    SELECT CONVERT(numeric(28,12), .320000000000) AS col 
    UNION ALL 
    SELECT CONVERT(numeric(28,12), 1.1) AS col 
    UNION ALL 
    SELECT CONVERT(numeric(28,12), 100) AS col 
    UNION ALL 
    SELECT CONVERT(numeric(28,12), 1000) AS col 
) AS qry 

Das nvarchar Ergebnis sieht wie folgt aus:

0.32 
1.10 
100.00 
1,000.00 
+0

Meinst du eine Spalte in der dsv hinzufügen und als String formatieren? Ich habe es mit einer neuen benannten Berechnung in der dsv versucht und es als Geld wie "Cast (SalesPrice als Geld)" auch das nicht im Visual Studio Browser funktioniert. Jedes Format funktioniert für die Measuregruppen, aber nicht für die Dimensionsebene. – knic7

+0

Bitte versuchen Sie den Ausdruck aus der zweiten Antwort für Ihre DSV-Spalte zu Nvarchar oder sogar die dritte mit der Format-Funktion zu werfen und überprüfen Sie Ihr Ergebnis in SQL oder mithilfe der Funktion Durchsuchen Daten der Datenquellenansicht: http://StackOverflow.com/ Fragen/5572169/convert-decimal-in-varchar-in-t-sql –

+0

FORMAT schließlich hat den Trick, ich bin mir nicht sicher, vielleicht gibt es einen besseren Ansatz, aber das FORMAT (SalesPrice, 'N', 'de-de ') als SalesPrice zeigt mir das Ergebnis benötigt. – knic7

-1

Sie können das Format im Dimensions-Designer festlegen. Die Eigenschaft befindet sich in der Quellengruppe unter NameColumn.

SSAS Properties

+0

Ich habe versucht, das Format in Währung und #. ## 0,00; - #. ## 0,00 auf der NameColumn und sogar auf der KeyColumn ... es funktioniert nicht. Ich denke, ich vermisse etwas anderes – knic7

+0

Vielleicht nicht. Die Clients, die eine Verbindung zu SSAS (Excel usw.) herstellen, müssen nicht alle Eigenschaften implementieren. Ich habe nach einer Dokumentation gesucht, auf die Sie sich beziehen können, habe aber eine Leerstelle gezeichnet. Wenn SSAS den Wert als .32 sendet und der Client das Formatfeld nicht prüft/verwendet, haben Sie keine Möglichkeit, es zu erzwingen. Eine Alternative besteht darin, die Daten in einer formatierten Zeichenfolge SSAS zu präsentieren (ich weiß, ich weiß - aber wenn dies in einer dunklen Tabelle ist dies Referenzdaten, anstatt ein Maß zu summieren). –

+0

Ich weiß nicht, ob das hilft, aber ich stöbere die Dimension über Visual Studio 2015 direkt nachdem ich einen vollständigen Prozess durchgeführt habe. – knic7

Verwandte Themen