{"id":590,"date":"2023-12-29T19:56:14","date_gmt":"2023-12-29T18:56:14","guid":{"rendered":"https:\/\/www.csopro.de\/biblog\/?p=590"},"modified":"2023-12-29T19:56:14","modified_gmt":"2023-12-29T18:56:14","slug":"mehrere-dax-statements-als-quelle-in-cubes","status":"publish","type":"post","link":"https:\/\/www.csopro.de\/biblog\/2023\/12\/mehrere-dax-statements-als-quelle-in-cubes\/","title":{"rendered":"mehrere DAX-Statements als Quelle in Cubes"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Motivation<\/h2>\n\n\n\n<p>In der Regel lesen Cubes (tabulare Modelle) Daten aus einem DWH, also meist relationalen Datenbanken. Es kann aber sinnvoll sein, das Ergebnis eines Cubes als Quelle f\u00fcr einen anderen Cube zu verwenden. In einem Kundenprojekt ben\u00f6tigten wir das, weil die Preisberechnung in einem Cube implementiert war und in einem anderen Cube verwendet werden sollte.<\/p>\n\n\n\n<p>Dann hat man also ein oder mehrere DAX-Statements, die man in den Cube laden will. W\u00e4hrend die Verwendung eines DAX-Statements gradlinig funktioniert, ist es schwer, mehrere DAX-Statements (mit dem gleichen Cube als Quelle) zu verwenden.<\/p>\n\n\n\n<p>Dieser Post zeigt, wie es funktioniert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem<\/h2>\n\n\n\n<p>Nehmen wir f\u00fcr unser Beispiel an, dass wir zwei DAX-Abfragen von einem bestehenden Cube in einen neuen Cube importieren wollen. Um ein einfaches Beispiel zu haben, verwenden wir als Abfrage einfach:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">evaluate {1}<\/pre>\n\n\n\n<p>Dies liefert eine Tabelle mit einer Spalte (&#8222;[Value]&#8220;) und einer Zeile, die den Wert 1 hat.<\/p>\n\n\n\n<p>Um diese Abfrage in den neuen Cube zu laden, gehen wir ganz normal im Visual Studio vor &#8211; genauso wie man es in Power BI auch machen w\u00fcrde:<\/p>\n\n\n\n<p>Wir definieren eine neue Datenquelle vom Typ &#8222;SQL Server Analysis Services-Datenbank&#8220;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-2.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"690\" height=\"433\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-2.png\" alt=\"\" class=\"wp-image-594\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-2.png 690w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-2-300x188.png 300w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><\/a><figcaption class=\"wp-element-caption\">Eingabe eins DAX-Statements bei einer neu erstellten Datenquelle vom Typ SSAS<\/figcaption><\/figure>\n\n\n\n<p>Um diese Daten als Tabelle im Cube zu haben, muss man auf der Datenquelle rechte Maustaste > &#8222;Import New Tables&#8220;anklicken. Das Power-Query-Fenster \u00f6ffnet sich:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-3.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"332\" height=\"191\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-3.png\" alt=\"\" class=\"wp-image-595\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-3.png 332w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-3-300x173.png 300w\" sizes=\"auto, (max-width: 332px) 100vw, 332px\" \/><\/a><figcaption class=\"wp-element-caption\">Power-Query-Editor f\u00fcr die DAX-Abfrage<\/figcaption><\/figure>\n\n\n\n<p>\u00dcber &#8222;Import&#8220; wird diese Abfrage automatisch ausgef\u00fchrt und man erh\u00e4lt eine neue Tabelle mit Namen &#8222;Table&#8220;, die nur eine Spalte &#8222;[Value]&#8220; hat und dort eine Zeile mit 1:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-4.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"194\" height=\"330\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-4.png\" alt=\"\" class=\"wp-image-596\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-4.png 194w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-4-176x300.png 176w\" sizes=\"auto, (max-width: 194px) 100vw, 194px\" \/><\/a><figcaption class=\"wp-element-caption\">Tabelle mit Ergebnis des DAX-Statements<\/figcaption><\/figure>\n\n\n\n<p>Versucht man aber nun analog eine zweite Abfrage (mit <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">evaluate {2}<\/code>) auszuf\u00fchren, scheint es zun\u00e4chst zu funktionieren. Allerdings wird keine zweite Datenquelle angelegt, sondern die bestehende ver\u00e4ndert, so dass bei einem Refresh die oben gezeigte Tabelle eine 2 statt einer 1 zeigt.<\/p>\n\n\n\n<p>Es ist nicht m\u00f6glich, zwei unterschiedliche DAX-Abfragen auf dieselbe Quelle abzufeuern<\/p>\n\n\n\n<p>Man muss es also anders probieren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L\u00f6sungsidee<\/h2>\n\n\n\n<p>Bei meinem <a href=\"https:\/\/www.csopro.de\/biblog\/2020\/10\/datumsdimension-in-ssas-ab-2016-azure\/\" data-type=\"link\" data-id=\"https:\/\/www.csopro.de\/biblog\/2020\/10\/datumsdimension-in-ssas-ab-2016-azure\/\">Blogeintrag <\/a>zur Datumsdimension in SSAS hatte ich bereits die M-Syntax <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Value.NativeQuery<\/code> verwendet. Dies werden wir hier mit der Datenquelle SSAS verwenden. <\/p>\n\n\n\n<p>Dazu gehen wir wie folgt vor:<\/p>\n\n\n\n<p>Zun\u00e4chst l\u00f6schen wir die Datenquelle mit dem DAX-Statement und erstellen eine neue, allerdings ohne Eingabe eines DAX-Statements.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-5.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"630\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-5.png\" alt=\"\" class=\"wp-image-597\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-5.png 566w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-5-270x300.png 270w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/a><figcaption class=\"wp-element-caption\">Quelle vom Typ SSAS<\/figcaption><\/figure>\n\n\n\n<p>Im zweiten Fenster geben wir nur die Connection an:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-7.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"415\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-7.png\" alt=\"\" class=\"wp-image-599\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-7.png 659w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-7-300x189.png 300w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/a><figcaption class=\"wp-element-caption\">Verbindung zu einer SSAS Datenbank &#8211; ohne DAX-Statement<\/figcaption><\/figure>\n\n\n\n<p>Um auszuprobieren, ob sie funktioniert, gehen wir mit der rechten Maustaste auf diese Verbindung und klicken auf &#8222;Import new tables&#8220;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-8.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"841\" height=\"673\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-8.png\" alt=\"\" class=\"wp-image-600\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-8.png 841w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-8-300x240.png 300w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-8-768x615.png 768w\" sizes=\"auto, (max-width: 841px) 100vw, 841px\" \/><\/a><figcaption class=\"wp-element-caption\">Auswahl einer kleinen (!) Tabelle<\/figcaption><\/figure>\n\n\n\n<p>Wir sollten darauf achten, dass wir eine kleine Tabelle ausw\u00e4hlen. Dann klicken wir auf &#8222;Load&#8220;.<\/p>\n\n\n\n<p>Damit wird eine neue Tabelle namens &#8222;Model&#8220; mit dieser Struktur angelegt. Das M hinter der Abfrage finden wir in den Eigenschaften bei Source Data:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-9.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"433\" height=\"338\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-9.png\" alt=\"\" class=\"wp-image-601\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-9.png 433w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-9-300x234.png 300w\" sizes=\"auto, (max-width: 433px) 100vw, 433px\" \/><\/a><figcaption class=\"wp-element-caption\">Eigenschaften der neuen Tabelle &#8211;> Source Data, um M zu sehen<\/figcaption><\/figure>\n\n\n\n<p>Das M-Statement sieht so aus:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let\n    Source = #\"Name der Datenquelle\",\n    Model1 = Source{[Id=\"Model\"]}[Data],\n    Model2 = Model1{[Id=\"Model\"]}[Data],\n    #\"Added Items\" = Cube.Transform(Model2,\n        {\n            {Cube.AddAndExpandDimensionColumn, \"[DimChannel]\", {\"[DimChannel].[ChannelDescription].[ChannelDescription]\", \"[DimChannel].[ChannelKey].[ChannelKey]\"}, {\"DimChannel.ChannelDescription\", \"DimChannel.ChannelKey\"}}\n        })\nin\n    #\"Added Items\"<\/pre>\n\n\n\n<p>Wenn wir das Statement nun so ab\u00e4ndern, haben wir die Problemstellung gel\u00f6st:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let\n    Source = #\"Name der Datenquelle\",\n    Tabelle = Value.NativeQuery(Source, \"evaluate {1}\")\nin\n    Tabelle<\/pre>\n\n\n\n<p>Nach dem L\u00f6schen der alten zwei Spalten und einem Refresh, sieht das Ergebnis wie gew\u00fcnscht aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-10.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"191\" height=\"118\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-10.png\" alt=\"\" class=\"wp-image-602\"\/><\/a><figcaption class=\"wp-element-caption\">Ergebnis der DAX-Abfrage als Tabelle<\/figcaption><\/figure>\n\n\n\n<p>Um nun zu zeigen, dass die zweite Abfrage auch funktioniert, erstellen wir einfach eine zweite Partition mit der gleichen M-Abfrage, wobei wir nur 1 durch 2 ersetzen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-11.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"781\" height=\"681\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-11.png\" alt=\"\" class=\"wp-image-603\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-11.png 781w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-11-300x262.png 300w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-11-768x670.png 768w\" sizes=\"auto, (max-width: 781px) 100vw, 781px\" \/><\/a><figcaption class=\"wp-element-caption\">2 Partitionen<\/figcaption><\/figure>\n\n\n\n<p>Nach einem Refresh auf die Tabelle haben wir das Ergebnis:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-12.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"180\" height=\"118\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-12.png\" alt=\"\" class=\"wp-image-604\"\/><\/a><figcaption class=\"wp-element-caption\">fertig: Beide DAX-Statements wurden ausgef\u00fchrt<\/figcaption><\/figure>\n\n\n\n<p>Damit sind wir fertig!<\/p>\n\n\n\n<p>Ich habe absichtlich das Beispiel der Partitionen verwendet, da dies ein klassisches Anwendungsszenario ist, bei dem mehrere Abfragen auf die gleiche Quelle abgefeuert werden m\u00fcssen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Optimierungen<\/h2>\n\n\n\n<p>Der Nachteil an dieser Implementierung ist, dass das DAX-Statement immer komplett geschrieben werden muss.<\/p>\n\n\n\n<p>Wenn man sich aber nun vorstellt, dass es ein kompliziertes DAX-Statement ist, das sich je Partition nur um eine Zahl unterscheidet (in unserem Beispiel eine Zahl von 0 bis 99), dann m\u00f6chte man das DAX-Statement nicht 100x schreiben &#8211; weil das nat\u00fcrlich sehr schlecht zu warten ist.<\/p>\n\n\n\n<p>Deswegen sehen bei uns die M-Befehle so aus:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">let\n    Source = #\"Name der Datenquelle\",\n\tP = Value.NativeQuery(\n        Source, Text.Combine({Vorne, \"1\", Hinten}, \"\")\n\t)\nin\n    P<\/pre>\n\n\n\n<p>Wir sehen, dass wir zwei Variablen (Vorne und Hinten) verwenden. In der gezeigten Partition wird dann die Zahl 1 zwischen Vorne und Hinten eingetragen.<\/p>\n\n\n\n<p>In unserem Beispiel aus dem Blog w\u00e4re<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Vorne = \"evaluate {\"<\/pre>\n\n\n\n<p>und<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Hinten = \"}\"<\/pre>\n\n\n\n<p>Jetzt ist nur noch die Frage, wo wir diese Variablen hinterlegen k\u00f6nnen. Das sind die Expressions:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-13.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"130\" height=\"56\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-13.png\" alt=\"\" class=\"wp-image-608\"\/><\/a><figcaption class=\"wp-element-caption\">Expressions<\/figcaption><\/figure>\n\n\n\n<p>Um diese zu erstellen, klicken wir mit der rechten Maustaste auf &#8222;Expressions&#8220; und dann auf &#8222;Edit Expressions&#8220;:<\/p>\n\n\n\n<p>Dann legen wir eine leere Query an:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-15.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"404\" height=\"236\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-15.png\" alt=\"\" class=\"wp-image-610\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-15.png 404w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-15-300x175.png 300w\" sizes=\"auto, (max-width: 404px) 100vw, 404px\" \/><\/a><figcaption class=\"wp-element-caption\">eine leere Quelle im Power Query Editor anlegen<\/figcaption><\/figure>\n\n\n\n<p>Die Query k\u00f6nnen wir umbenennen \u00fcber die Name-Property. Den Wert der Variablen tippen wir oben einfach ein:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-16.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"241\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-16-1024x241.png\" alt=\"\" class=\"wp-image-611\" srcset=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-16-1024x241.png 1024w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-16-300x71.png 300w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-16-768x181.png 768w, https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2023\/12\/grafik-16.png 1230w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Beispiel der Variable &#8222;Vorne&#8220;<\/figcaption><\/figure>\n\n\n\n<p>In unserem echten Anwendungsfall haben wir den Text (hier <em><code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">evaluate {<\/code><\/em> ) nicht einfach eingetragen, sondern mit = zugewiesen, also <em><code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">= \"evaluate {\"<\/code><\/em> geschrieben. Dann muss man Anf\u00fchrungszeichen, die in dem DAX-Statement vorkommen, verdoppeln, da der Interpreter sonst denkt, der String w\u00e4re zu Ende.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Motivation In der Regel lesen Cubes (tabulare Modelle) Daten aus einem DWH, also meist relationalen Datenbanken. Es kann aber sinnvoll sein, das Ergebnis eines Cubes als Quelle f\u00fcr einen anderen Cube zu verwenden. In einem Kundenprojekt ben\u00f6tigten wir das, weil die Preisberechnung in einem Cube implementiert war und in einem anderen Cube verwendet werden sollte. &hellip; <a href=\"https:\/\/www.csopro.de\/biblog\/2023\/12\/mehrere-dax-statements-als-quelle-in-cubes\/\" class=\"more-link\"><span class=\"screen-reader-text\">mehrere DAX-Statements als Quelle in Cubes<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63,9,88],"tags":[28,91],"class_list":["post-590","post","type-post","status-publish","format-standard","hentry","category-azure-anaysis-services","category-analysisservices","category-visual-studio","tag-dax","tag-ssas"],"_links":{"self":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/comments?post=590"}],"version-history":[{"count":12,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/590\/revisions"}],"predecessor-version":[{"id":619,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/590\/revisions\/619"}],"wp:attachment":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/media?parent=590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/categories?post=590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/tags?post=590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}