have following query
select
non empty
(
[Dimension1].[Description].children,
[Dimension1].[GCode].members,
[Measures].[GScore Sum]
)
on columns,
non empty
(
[Dimension2].[DCode].[DCode] *
[Dimension2].[DName].[DName] *
[Dimension2.[Barcode].[Barcode] *
[Dimension2].[LN].[LName] *
[Dimension2].[FN].[FName]
)
on rows
from
[MCube]
where
(
{[Dimension2].[HARC].[DCode].&[0000]}
)
In the results [GSCORE SUM] column name repeats is eachtheir way to avoid the repeation of column name or give the unique name for EACH GLCE Code member instead of just repetting [GSCore Sum] in results or make the [Gscore Sum] invisible
http://i.stack.imgur.com/yte59.jpg
Not 100% sure what you require but have you tried adding the measure to the WHERE clause?:
select
non empty
(
[Dimension1].[Description].children,
[Dimension1].[GCode].members
)
on columns,
non empty
(
[Dimension2].[DCode].[DCode] *
[Dimension2].[DName].[DName] *
[Dimension2.[Barcode].[Barcode] *
[Dimension2].[LN].[LName] *
[Dimension2].[FN].[FName]
)
on rows
from
[MCube]
where
(
[Measures].[GScore Sum],
{[Dimension2].[HARC].[DCode].&[0000]}
)
Related
When i try to get sum of three columns as Total it gives null when one of column is null in Recieved,Claim or Issue
SELECT YarnId,
Recieve,
Issued,
Claim,
Total=Recieve+Issued
FROM
(
SELECT YarnId,Status,Bags
FROM Yarn_IssueRecieve
) as PivotData
Pivot
(
SUM(bags) for Status in (Recieve,Issued,Damage,Claim)
) as Pivoting
Following is the output
use COALESCE
Total= COALESCE (Recieve,0) + COALESCE (Issued,0)
and
SUM( COALESCE (bags,0) )
You can use ISNULL
SELECT YarnId,
Recieve,
Issued,
Claim,
Total=ISNULL(Recieve,0)+ISNULL(Issued,0)
FROM
(
SELECT YarnId,Status,Bags
FROM Yarn_IssueRecieve
) as PivotData
Pivot
(
SUM(bags) for Status in (Recieve,Issued,Damage,Claim)
) as Pivoting
In MySql or MSSQL Server, if you add any number with NULL, the result is NULL. For example-
SELECT 10 + NULL
--Result is NULL
As a result, you have handle NULL in your query to overcome the situation you are facing. You can use COALESCE for your purpose and the script should be as below-
Total=COALESCE(Recieve,0)+COALESCE(Issued,0)
I am need to delete all 2 month from set. This code return all date range without excepting 2 month.
SELECT
{[Measures].[In]} ON COLUMNS,
EXCEPT([Date].[2014].[1] : [Date].[2016].[2], [Date].[Month].[2]) ON ROWS
FROM [Shop hourly]
Print screen for whytheq
My decision based on whytheq answear. I create a dimension for all kind of dates, and except them. Example:
SELECT {[Measures].[In sum]} ON COLUMNS,
NON EMPTY
{[Shop].[11], [Shop].[22], [Shop].[33]} *
Except([Quarter].Children, [Quarter].[2]) *
[Month].Children ON ROWS
FROM [Shop hourly]
WHERE
([Date].[2013].[1].[1] : [Date].[2016].[1].[1]) *
Except([Year].Children, [Year].[2014])
In AdventureWorks I can do the following:
SELECT
[Measures].[Internet Sales Amount] ON 0
,NON EMPTY
Except
(
[Date].[Calendar].[Month].&[2005]&[7]
:
[Date].[Calendar].[Month].&[2008]&[7]
,Exists
(
[Date].[Calendar].[Month].MEMBERS
,[Date].[Calendar Quarter of Year].&[CY Q3]
)
) ON 1
FROM [Adventure Works];
So adapting the above to your cube maybe looks like the following:
SELECT
{[Measures].[In]} ON COLUMNS
,Except
(
[Date].[2014].[1] : [Date].[2016].[2]
,Exists
(
[Date].MEMBERS
,[Date].[Month].[2]
)
) ON ROWS
FROM [Shop hourly];
I have the following MDX:
SELECT
NON EMPTY
{
[Measures].[Returns]
,[Measures].[Returns]
} ON COLUMNS
,NON EMPTY
{[Employees].[Company].[Company].ALLMEMBERS}
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME
ON ROWS
FROM
(
SELECT
StrToSet
("[Exec Date].[Hierarchy].[Month Num].&[2014]&[1]"
,CONSTRAINED
) ON COLUMNS
FROM [cbSales]
)
WHERE
IIF
(
StrToSet
("[Exec Date].[Hierarchy].[Month Num].&[2014]&[1]"
,CONSTRAINED
).Count
= 1
,StrToSet
("[Exec Date].[Hierarchy].[Month Num].&[2014]&[1]"
,CONSTRAINED
)
,[Exec Date].[Hierarchy].CurrentMember
);
Both columns shows returned data for month 2014/01
I want to have data for the next month (2014/02) in the second column.
How can I change the query to achieve my goal.
I'll try to replicate with AdvWks cube, so currently not tested:
WITH
MEMBER [Measures].[ReturnsNextMth] AS
(
[Measures].[Returns]
,[Exec Date].[Hierarchy].CurrentMember.NextMember
)
SELECT
NON EMPTY
{
[Measures].[Returns]
,[Measures].[ReturnsNextMth]
} ON COLUMNS
,NON EMPTY
{
[Employees].[Company].[Company].ALLMEMBERS
*
[Exec Date].[Hierarchy].[Month Num].ALLMEMBERS
} ON ROWS
FROM
(
SELECT
StrToSet
("[Exec Date].[Hierarchy].[Month Num].&[2014]&[1]"
,CONSTRAINED
) ON COLUMNS
FROM [cbSales]
);
Something similar in AdvWks:
WITH
MEMBER [Measures].[ReturnsNextMth] AS
(
[Measures].[Internet Order Count]
,[Date].[Calendar].CurrentMember.NextMember
)
SELECT
NON EMPTY
{
[Measures].[Internet Order Count]
,[Measures].[ReturnsNextMth]
} ON COLUMNS
,NON EMPTY
{
[Sales Territory].[Sales Territory].[Country].MEMBERS
*
[Date].[Calendar].[Month].ALLMEMBERS
} ON ROWS
FROM
(
SELECT
[Date].[Calendar].[Month].&[2008]&[1] ON COLUMNS
FROM [Adventure Works]
);
This gives these results. I found this quite surprising as the sub-select seems to suggest we only have Jan-2008 available, but sub-select is a bit of a strange creature. This article explains: http://bisherryli.com/2013/02/08/mdx-25-slicer-or-sub-cube/. So our measure [ReturnsNextMth] still functions ok.
i am fairly new to MDX and SSAS. Recently i have been asked to produce a report which requires a Starting value for each monthly period and then the movement within each period ending up at the starting value for the next month.
I can produce this in two separate MDX see below, but i am flummoxed on how to bring these results together in one dataset in SSRS without basically forming the data physically in a database and pulling trough into the warehouse. The queries are slightly different since they both use a different Measure and then one uses a couple more Dimensional filters.
any help would be most appreciated and i hope someone here can help or offer some useful advice on other ways to possibly get to what i need to:
WITH MEMBER [Member1] AS AGGREGATE( ({[SRD Date].[Base Report Date].& [1]},{[SRD Date].[Current Year].& [Yes]}), [Measures].[Amount])
SELECT NON EMPTY { [member1] } ON COLUMNS
, NON EMPTY {([SRD Date].[Year].[Year].ALLMEMBERS
* [SRD Date].[Month Key].[Month Key].ALLMEMBERS
* [SRD Date].[Month Of Year].[Month Of Year].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION
, MEMBER_UNIQUE_NAME ON ROWS FROM (
SELECT (
- { [Resource].[Category].& [Support]
, [Resource].[Category].& [Bolt-on] }
) ON COLUMNS
FROM (
SELECT ([Exclude Test Accounts]) ON COLUMNS
FROM (
SELECT ([OnlyUnitsAndItems]) ON COLUMNS
FROM (
SELECT ([ExcludeNonReportableMonths]) ON COLUMNS
FROM [Cube1]
) ) ) )
WITH MEMBER [Member2] AS AGGREGATE( ( {[SRD Date].[Current Year].& [Yes]}), [Measures].[Amount Of Movement])
SELECT NON EMPTY { [Member2] } ON COLUMNS
, NON EMPTY {([SRD Date].[Year].[Year].ALLMEMBERS
* [SRD Date].[Month Key].[Month Key].ALLMEMBERS
* [SRD Date].[Month Of Year].[Month Of Year].ALLMEMBERS
* [SRD].[Movement Type].[Movement Type].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION
, MEMBER_UNIQUE_NAME ON ROWS FROM (
SELECT (
- { [Resource].[Category].& [Support]
, [Resource].[Category].& [Bolt-on] }
) ON COLUMNS
FROM (
SELECT ([Exclude Test Accounts]) ON COLUMNS
FROM (
SELECT ([OnlyUnitsAndItems]) ON COLUMNS
FROM (
SELECT ([ExcludeNonReportableMonths]) ON COLUMNS
FROM [Cube1]
) ) ) )
Just combine both WITH clauses (without a comma or anything in between!), and list both members in the columns axis:
WITH MEMBER MEMBER [Member1] AS AGGREGATE( ({[SRD Date].[Base Report Date].& [1]},{[SRD Date].[Current Year].& [Yes]}), [Measures].[Amount])
MEMBER [Member2] AS AGGREGATE( ( {[SRD Date].[Current Year].& [Yes]}), [Measures].[Amount Of Movement])
SELECT NON EMPTY { [Member1], [Member2] } ON COLUMNS
, NON EMPTY {([SRD Date].[Year].[Year].ALLMEMBERS
* [SRD Date].[Month Key].[Month Key].ALLMEMBERS
* [SRD Date].[Month Of Year].[Month Of Year].ALLMEMBERS
* [SRD].[Movement Type].[Movement Type].ALLMEMBERS) } DIMENSION PROPERTIES MEMBER_CAPTION
, MEMBER_UNIQUE_NAME ON ROWS FROM (
SELECT (
- { [Resource].[Category].& [Support]
, [Resource].[Category].& [Bolt-on] }
) ON COLUMNS
FROM (
SELECT ([Exclude Test Accounts]) ON COLUMNS
FROM (
SELECT ([OnlyUnitsAndItems]) ON COLUMNS
FROM (
SELECT ([ExcludeNonReportableMonths]) ON COLUMNS
FROM [Cube1]
) ) ) )
I hope I did not miss any important other difference between both queries.
Hi,
I want to order the PriceValues field in the following query in Ascending Order
SELECT
NON EMPTY
Hierarchize
(
Union
(
{[PriceValues].[Grand Total]}
,[PriceValues].[Grand Total].Children
)
) ON COLUMNS
,NON EMPTY
Hierarchize
(
Union
(
{[Offer].[Grand Total]}
,[Offer].[Grand Total].Children
)
) ON ROWS
FROM [Act_RenewDetails]
WHERE
{[Measures].[Revenue]};
To order a measure in ascending numerical order:
{ORDER({[PriceValues].[Grand Total],[PriceValues].[Grand Total].Children}, [Measures].[Revenue], BASC)} ON COLUMNS
Edit: Or you can order alphabetically by the member names of a dimension:
{ORDER({[PriceValues].[Grand Total],[PriceValues].[Grand Total].Children}, [PriceValues].CurrentMember.name, BASC)} ON COLUMNS
(I think .name might be .memberName or even .caption - my memory is rusty.)