Ich habe diese Anfrage:Wählen Hierarchize/Drill-Down Spalten von Analysis Service
SELECT
{
[Measures].[ContractValue]
,[Measures].[ContractVolumeMWh]
,[Measures].[ContractVolumeMW]
}
DIMENSION PROPERTIES
PARENT_UNIQUE_NAME
,HIERARCHY_UNIQUE_NAME
ON COLUMNS
,NON EMPTY
Hierarchize
(
DrillDownMember
(
DrillDownMember
(
DrillDownMember
(
DrillDownMember
(
CrossJoin
(
{
[HalfHourEnding].[Year].[All]
,[HalfHourEnding].[Year].[Year].ALLMEMBERS
}
,{
(
[HalfHourEnding].[Quarter].[All]
,[HalfHourEnding].[Month].[All]
,[Book].[Book].[All]
,[InstrumentType].[InstrumentType].[All]
)
}
)
,[HalfHourEnding].[Year].[Year].ALLMEMBERS AS year
,[HalfHourEnding].[Quarter]
)
,[HalfHourEnding].[Quarter].[Quarter].ALLMEMBERS
,[HalfHourEnding].[Month]
)
,[HalfHourEnding].[Month].[Month].ALLMEMBERS
,[Book].[Book]
)
,[Book].[Book].[Book].ALLMEMBERS
,[InstrumentType].[InstrumentType]
)
)
DIMENSION PROPERTIES
PARENT_UNIQUE_NAME
,HIERARCHY_UNIQUE_NAME
ON ROWS
FROM [ContractDetail]
WHERE
(
[AsAt].[As at Business Date].&[2016-06-04T00:00:00]
,[Region].[Region].&[TTT]
)
CELL PROPERTIES
VALUE
,FORMAT_STRING
,LANGUAGE
,BACK_COLOR
,FORE_COLOR
,FONT_FLAGS;
, die, wenn ich in Microsoft Analysis Server laufen erhalte ich:
Welche den richtigen Ausgang ist jedoch Ich bekomme keine Header für die ersten fünf Spalten. Dies führt zu dem Problem, dass ich keine dieser Spalten auswählen kann, wenn ich diese Daten mithilfe von openquery aus tsql auswählen möchte.
Dies ist die Abfrage von Tsql, es gibt mir alles in der richtigen Reihenfolge, aber ich bin nicht in der Lage, Jahr Quartal Monat Buch instrumentType zu erhalten.
DECLARE @ContractsTable as TABLE (
Year varchar(100),
Quarter varchar(100),
Month varchar(100),
Book varchar(100),
InstrumentType varchar(100),
Value decimal(16,2),
Volume_MWH decimal(16,2),
Volume_MW decimal(16,2)
)
Declare @ContractsQuery as nvarchar(max)
SET @ContractsQuery =
'
SELECT
"[Measures].[ContractValue]" as value,
"[Measures].[ContractVolumeMWh]" as MWH,
"[Measures].[ContractVolumeMW]" as MW
from OpenQuery(CONTRACT_IMDB,
''SELECT
{
[Measures].[ContractValue]
,[Measures].[ContractVolumeMWh]
,[Measures].[ContractVolumeMW]
}
DIMENSION PROPERTIES
PARENT_UNIQUE_NAME
,HIERARCHY_UNIQUE_NAME
ON COLUMNS
,NON EMPTY
Hierarchize
(
DrillDownMember
(
DrillDownMember
(
DrillDownMember
(
DrillDownMember
(
CrossJoin
(
{
[HalfHourEnding].[Year].[All]
,[HalfHourEnding].[Year].[Year].ALLMEMBERS
}
,{
(
[HalfHourEnding].[Quarter].[All]
,[HalfHourEnding].[Month].[All]
,[Book].[Book].[All]
,[InstrumentType].[InstrumentType].[All]
)
}
)
,[HalfHourEnding].[Year].[Year].ALLMEMBERS AS year
,[HalfHourEnding].[Quarter]
)
,[HalfHourEnding].[Quarter].[Quarter].ALLMEMBERS
,[HalfHourEnding].[Month]
)
,[HalfHourEnding].[Month].[Month].ALLMEMBERS
,[Book].[Book]
)
,[Book].[Book].[Book].ALLMEMBERS
,[InstrumentType].[InstrumentType]
)
)
DIMENSION PROPERTIES
PARENT_UNIQUE_NAME
,HIERARCHY_UNIQUE_NAME
ON ROWS
FROM [ContractDetail]
WHERE
(
[AsAt].[As at Business Date].&[2016-06-04T00:00:00]
,[Region].[Region].&[TTT]
)
CELL PROPERTIES
VALUE
,FORMAT_STRING
,LANGUAGE
,BACK_COLOR
,FORE_COLOR
,FONT_FLAGS; ''
)
'
INSERT INTO @ContractsTable(Value,Volume_MWH,Volume_MW)
EXEC sp_executesql @ContractsQuery
Select * From @ContractsTable
Der Ausgang ist
Jetzt habe ich will einfach nur die Ausgabe von Analysen zu extrahieren, aber ich bin nicht in der Lage, alle Spalten auswählen. Und ich bin nicht in der Lage herauszufinden, wie ich diese Spalten definiere, wo ich in den Dimensionen bohre.
ersetzen Sie zunächst Ihre aktuelle Select-Klausel mit Select * .... Sie werden dann wissen, was die Spaltennamen sind - normalerweise erhalten Sie bei der Verwendung von openquery mehr Spalten als in der mdx angegeben. Von der Ausgabe von Select * können Sie die Spaltenüberschriften sehen – whytheq