Benutzer mit den meisten Antworten
Würfel mit einem T-SQL Statement als Basis

Frage
-
Guten Tag,
kann man das Ergebnis einer SQL-Abfrage, die das CUBE Statement beinhaltet in einen Würfel schreiben, so dass dieser WÜrfel dauerhaft besteht?
Bsp.:
USE AdventureWorks2008R2
GO
SELECT
T.[Group] AS N'Region', T.CountryRegionCode AS N'Country'
GO
SELECT
T.[Group] AS N'Region', T.CountryRegionCode AS N'Country'
,S.Name AS N'Store', H.SalesPersonID
,SUM(TotalDue) AS N'Total Sales'
FROM
Sales.Customer AS CINNER JOIN Sales.Store AS S
ON C.StoreID = S.BusinessEntityID
INNER JOIN Sales.SalesTerritory AS T
ON C.TerritoryID = T.TerritoryID
INNER JOIN Sales.SalesOrderHeader AS H
ON C.CustomerID = H.CustomerID
WHERE
T.[Group] = N'Europe'
AND T.CountryRegionCode IN(N'DE', N'FR')
AND H.SalesPersonID IN(287, 288, 290)
AND SUBSTRING(S.Name,1,4)IN(N'Vers', N'Spa ')GROUP
BY CUBE(
T.[Group], T.CountryRegionCode, S.Name, H.SalesPersonID)
ORDER
BY T.[Group], T.CountryRegionCode, S.Name, H.SalesPersonID;
,S.Name AS N'Store', H.SalesPersonID
,SUM(TotalDue) AS N'Total Sales'
FROMSales.Customer AS C
INNER JOIN Sales.Store AS S
ON C.StoreID = S.BusinessEntityID
INNER JOIN Sales.SalesTerritory AS T
ON C.TerritoryID = T.TerritoryID
INNER JOIN Sales.SalesOrderHeader AS H
ON C.CustomerID = H.CustomerID
WHERE
T.[Group] = N'Europe'
AND T.CountryRegionCode IN(N'DE', N'FR')
AND H.SalesPersonID IN(287, 288, 290)
AND SUBSTRING(S.Name,1,4)IN(N'Vers', N'Spa ')
GROUP BY CUBE(T.[Group], T.CountryRegionCode, S.Name, H.SalesPersonID)
ORDER
BY T.[Group], T.CountryRegionCode, S.Name, H.SalesPersonID;
W.
wksh
Antworten
-
Hallo wksh,
auf die Gefahr hin mich zu irren:
Sie möchten wie bei einem SELECT...INTO ... aus einem Statement dieses Mal keine Tabelle erzeugen, sondern gleich einen SSAS-Cube?
Leider hilft da auch das Wörtchen "CUBE" beim SQL-Statement nicht. SSAS ist eine eigene (Analyse-)Engine, die unter anderem mit MDX abgefragt und XML-A definiert werden kann.
T-SQL wird in der Relationalen-(DB-)Engine benutzt. Man kann zwar mit einigen Tricks die Grenzen verwischen, dass wird Ihnen aber hier leider auch nicht helfen.
Ansonsten sind die Links von Andreas schon gut, falls Sie etwas tiefer einsteigen wollen.
Wenn ich Sie nun komplett missverstanden habe - mein Fehler. Trotzdem viel Erfolg.Ralf
- Als Antwort markiert WKSH Dienstag, 8. Juli 2014 06:01
Alle Antworten
-
Hallo
Du verwendest sowohl das Wort "CUBE" - als Syntaxelement, als auch das Wort "Würfel".
Was meinst Du mit Würfel? Einen "Analysis Services Cube"?
Oder möchtest Du Deine Abfrage oder das Resultset dieser Abfrage einfach nur als Tabelle oder Sicht innerhalb SQL Server abspeichern?
Bis hierhin mir ich mir noch nicht ganz klar, worauf Du hinausmöchtest
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com -
Lieber Andreas Wolter,
deine Antwort verblüfft mich.
Dass ein Würfel wohl ein CUBE ist, oder mindestens bezeichnen kann, ist dir bestimmt geläufig.
Wenn du den Betreff liest sowie die einleitenden Zeilen meiner Frage dazu noch das SQL Statement, kann doch nicht so schwer zu verstehen sein, was gemeint ist.
Das Script beinhaltet das SQL Element cube, das hast du prima erkannt.
Ob man ein solches, wie das exemplarisch angeführte script benutzen kann, um einen Würfel ( oder SSAS Würfel ) zu bauen, das ist die Frage.
So wie man ein SQL-Statement in eine Tabelle umleiten kann?
wksh
-
...
deine Antwort verblüfft mich.
Dass ein Würfel wohl ein CUBE ist, oder mindestens bezeichnen kann, ist dir bestimmt geläufig.
Wenn du den Betreff liest sowie die einleitenden Zeilen meiner Frage dazu noch das SQL Statement, kann doch nicht so schwer zu verstehen sein, was gemeint ist.
Das Script beinhaltet das SQL Element cube, das hast du prima erkannt.
...Lieber wksh
Leider ist ein Satz wie dieser: „kann man das Ergebnis einer SQL-Abfrage, die das CUBE Statement beinhaltet in einen Würfel schreiben, so dass dieser WÜrfel dauerhaft besteht?“
... alles andere als eindeutig. Sicherlich kann man Cube mit „Würfel“ übersetzen und tut das auch oft. Wirklich eindeutig wäre aber eben „Analysis Services Cube/Würfel“.
Denn hier kommt ein seltsamer Satz hinzu „dass dieser Würfel dauerhaft besteht“ – das irritiert und man fragt sich. Warum?Wenn man in seinem Ad-HOC SQL bereits mit „Cube“ arbeitet, kann man daraus keinen AS-Cube erzeugen, dann die Zwischensummen „stören“.
Ein Analysis Services Cube ERSETZT dieses „Cube-Statement“.
Warum solte man das also tun wollen.
Deswegen ist es verwirrend, und um korrekte Vorschläge zu machen, fragt man eben nach. Soviel sollter erlaubt sein.
Nebenbei tun wir das hier alle freiwillig und schneiden es von unserer Freizeit ab, das sollte man vielleicht bedenken bei solch einem Kommentar.
In Grob ist die Vorgehensweise:
- Bereitstellen einer Fakten und einer oder mehrerer Dimensionstabellen, vorzugsweise im Sternschema (und nicht normalisiert)
- Verwenden der Data Tools oder BIDS zum Definieren der Dimensionen
- Anschließend Aufbau des Cubes unter Verwendung dieser Dimensionen und der Faktentabelle „in der Mitte“ – Die Abfrage wird dabei erzeugt
Ich schlage vor, dass Sie sich einmal ausführlich mit „Analysis Services Cubes“ beschäftigen. Aus der Frage kann man erkennen, dass hier die Grundlagen fehlen - was ja nicht schlimm ist. Jeder fängt mal an. Jedenfalls ist das Ganze nicht in ein Zwei Sätzen erklärt.
Hier Links zu kostenlosen Tutorials:
http://msdn.microsoft.com/de-de/library/ms170208.aspx
https://www.youtube.com/watch?v=ctUiHZHr-5M
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com -
Guten Tag,
der Kunde möchte dass der Würfel dauerhaft besteht und kam auf die Frage, ob man eben aus einem SQL-Statement heraus Würfel erzeugen kann.
Ihre Antwort ist ja reichlich blasiert und ich hoffe, dass Sie in Zukunft weniger Zeit haben meine Fragen zu beantworten.
Ihnen fehlen Grundlagen ganz anderer Art, das haben Sie deutlich gemacht.
Ich denke auf meinen Dank können Sie verzichten.
mfg
w.
wksh
-
Da kann ich nur noch mit dem Kopf schütteln.
Zm Glück ist so ein Gebahren aus der Anonymität heraus in den Microsoft Foren eher die Ausnahme.
Alles Gute
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com -
Glauben Sie im Ernst, dass man Menschen hilft, wenn man arrogant und aufgeblasen daher labert ohne das eigentliche Problem erfasst zu haben?
Schütteln Sie ruhig den Kopf, wenn es hilft.
Sie haben weder das Problem erfasst, noch eine adäquate Antwort gegeben.
Lediglich Zeit haben Sie vertan, Ihre und meine.
wksh
-
Hallo wksh,
auf die Gefahr hin mich zu irren:
Sie möchten wie bei einem SELECT...INTO ... aus einem Statement dieses Mal keine Tabelle erzeugen, sondern gleich einen SSAS-Cube?
Leider hilft da auch das Wörtchen "CUBE" beim SQL-Statement nicht. SSAS ist eine eigene (Analyse-)Engine, die unter anderem mit MDX abgefragt und XML-A definiert werden kann.
T-SQL wird in der Relationalen-(DB-)Engine benutzt. Man kann zwar mit einigen Tricks die Grenzen verwischen, dass wird Ihnen aber hier leider auch nicht helfen.
Ansonsten sind die Links von Andreas schon gut, falls Sie etwas tiefer einsteigen wollen.
Wenn ich Sie nun komplett missverstanden habe - mein Fehler. Trotzdem viel Erfolg.Ralf
- Als Antwort markiert WKSH Dienstag, 8. Juli 2014 06:01
-
Guten Morgen Ralf,
vielen Dank für Ihre Antwort.
Sie haben richtig erkannt, was der Kunde wünscht.
So wie man in SQL mit abgeleiteten Tabellen arbeiten kann, kam eben der Gedanke auf, man könne vielleicht auch aus einem SQL-Statement heraus einen cube erstellen und diese Idee, sofern sie funktionieren würde, ist genial. ( Zumindest für unsere Zwecke!)
Dass uns hier nur MDX weiterhelfen kann, ist uns inzwischen auch aufgegangen.
Vielen Dank!
wksh
wksh