Excel Generating MDX Query With Crossjoins

Hi All,
I am having performance issues while using excel to browse SSAS cube.
I ran the pro filer and captured the MDX queries and query which excel has auto generated has lot of cross joins 
All i am doing is selecting 3 attributes in a dimension and i can't understand why excel is choosing to use cross joins
Can any one please give me some options on how to make excel not use cross joins ?
Query From BIDS :
SELECT NON EMPTY { } ON COLUMNS, NON EMPTY { ([Orders].[Order No].[Order No].ALLMEMBERS * [Orders].[Order Status].[Order Status].ALLMEMBERS * [Orders].[Branch].[Branch].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Sales_Detail]
CELL PROPERTIES VALUE
Query From Excel :
SELECT 
NON EMPTY CrossJoin(CrossJoin(Hierarchize({DrilldownLevel({[Orders].[Order No].[All]},,,INCLUDE_CALC_MEMBERS)}), Hierarchize({DrilldownLevel({[Orders].[Order Status].[All]},,,INCLUDE_CALC_MEMBERS)})), Hierarchize({DrilldownLevel({[Orders].[Branch].[All]},,,INCLUDE_CALC_MEMBERS)}))
DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME,[Orders].[Order No].[Order No].[Branch],[Orders].[Order No].[Order No].[Legal Entity],[Orders].[Order No].[Order No].[Likelihood Of Deal],[Orders].[Order No].[Order No].[Order Status],[Orders].[Order
No].[Order No].[Order Type],[Orders].[Order No].[Order No].[Products ID] ON COLUMNS  FROM [Sales_Detail] CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS

Hi Satish,
According to your description, you find Excel using a lot of CROSSJOIN when driving data from cube. It caused bad performance and you want to avoid it. Right?
This is a known issue in Excel, it uses a certain template to build the cross join. It uses DrillDown.... functions for complex user filter selection when doing drill down. It's the default behavior of Excel and it hasn't been fixed yet.
In this scenario, I suggest you build user hierarchy in your cube and use it in Excel when retrieving data into pivot table.
See a similar thread below:
https://social.msdn.microsoft.com/forums/sqlserver/en-US/99a6a97f-518a-4fe6-b9bd-fa81f0a44587/controlling-the-mdx-constructed-by-excel-pivottables
Reference:
Binding an Excel table to the results of an MDX query
Best Regards,
Simon Hou
TechNet Community Support

Similar Messages

  • MDX query with a DMX query

    Hi All,
    Do I have a way to run a MDX query with a DMX query? (Avoiding the “link server” options… )
    I need to get the cube last update date like this DMX query:
    SELECT 1
    as CubeStatus
    FROM $System.MDSCHEMA_CUBES
    where 
    format(LAST_DATA_UPDATE,
    'dd/MM/yyyy') = format(now(),
    'dd/MM/yyyy')  --"1" means that the cube was processed, NULL cube did not process today
    and cube_source = 1
    and cross reference it to a result I get from this MDX query:
    with
    member measures.LastDateCube
    as [Comm Date UTC].[Date].currentmember.PROPERTIES("KEY")
    select measures.LastDateCube
    on 0 from comms
    the purpose of this is to know for sure that my current member (date integer) is equal to the cube last update date. thus, making sure the cube was processed and I get the correct member I expect.
    What do you think?
    Thank you
    Yoni.

    Hi yonibiel,
    According to your description, you want to combine a DMX query with a MDX query. Right?
    In SQL Server, it is not supported to parse the MDX query without connecting the SSAS database server. So if you want to combine the DMX and MDX query into one dataset, the only way is using linked server to SSAS in openquery() function.
    In this scenario, if you render these data from two result sets for reporting purpose, I assume you using SSRS, you can create two datasets and use lookup() to combine data fields from two datasets into one data region.
    Reference:
    Joining the results of two MDX queries together
    Best Regards,
    Simon Hou
    TechNet Community Support

  • How to generate mdx query using C#

    I am new to mdx query and i am very curious about mdx query generation using c# so i searched for any demo or open source then i found
    Ranet.olap, which is providing what i need. After taking the dlls i tried to incorporate them in my code. I am pasting my full
    console code which should generate mdx query but it's not doing so, Am i doing something wrong.
    using System;
    using System.Collections.Generic;
    using Microsoft.AnalysisServices.AdomdClient;
    using Ranet.Olap.Core.Managers;
    using Ranet.Olap.Core.Metadata;
    using Ranet.Olap.Core.Types;
    namespace MDX
        class Program
            static void Main(string[] args)
                startWork();
            public static void startWork()
                string connString = "Provider=MSOLAP.3; Data Source=localhost;Initial Catalog=AdventureWorkDW2008R2;Integrated Security=SSPI;";
                CubeDef cubes;
                AdomdConnection conn = new AdomdConnection(connString);
                conn.Open();
                cubes = conn.Cubes.Find("AdventureWorkCube");
                Ranet.Olap.Core.Managers.MdxQueryBuilder mdx = new Ranet.Olap.Core.Managers.MdxQueryBuilder();
                mdx.Cube = cubes.Caption;
                List<Ranet.Olap.Core.Wrappers.AreaItemWrapper> listColumn = new List<Ranet.Olap.Core.Wrappers.AreaItemWrapper>();
                List<Ranet.Olap.Core.Wrappers.AreaItemWrapper> listRow = new List<Ranet.Olap.Core.Wrappers.AreaItemWrapper>();
                List<Ranet.Olap.Core.Wrappers.AreaItemWrapper> listData = new List<Ranet.Olap.Core.Wrappers.AreaItemWrapper>();
                //Column area
                Dimension dmColumn = cubes.Dimensions.Find("Dim Product");
                Microsoft.AnalysisServices.AdomdClient.Hierarchy hColumn = dmColumn.Hierarchies["English Product Name"];
                //hierarchy properties
                List<PropertyInfo> lPropInfo = new List<PropertyInfo>();
                foreach (var prop in hColumn.Properties)
                    PropertyInfo p = new PropertyInfo();
                    p.Name = prop.Name;
                    p.Value = prop.Value;
                    lPropInfo.Add(p);
                Ranet.Olap.Core.Wrappers.AreaItemWrapper areaIColumn = new Ranet.Olap.Core.Wrappers.AreaItemWrapper();
                areaIColumn.AreaItemType = AreaItemWrapperType.Hierarchy_AreaItemWrapper;
                areaIColumn.Caption = hColumn.Caption;
                areaIColumn.CustomProperties = lPropInfo;
                listColumn.Add(areaIColumn);
                //Rows Area
                Dimension dmRow = cubes.Dimensions.Find("Due Date");
                Microsoft.AnalysisServices.AdomdClient.Hierarchy hRow = dmRow.Hierarchies["English Month Name"];
                List<PropertyInfo> lRowPropInfo = new List<PropertyInfo>();
                foreach (var prop in hRow.Properties)
                    PropertyInfo p = new PropertyInfo(prop.Name,prop.Value);
                    lRowPropInfo.Add(p);
                Ranet.Olap.Core.Wrappers.AreaItemWrapper areaIRow = new Ranet.Olap.Core.Wrappers.AreaItemWrapper();
                areaIRow.AreaItemType = AreaItemWrapperType.Hierarchy_AreaItemWrapper;
                areaIRow.Caption = hRow.Caption;
                areaIRow.CustomProperties = lRowPropInfo;
                listRow.Add(areaIRow);
                //Measure Area or Data Area
                Measure ms = cubes.Measures.Find("Order Quantity");
                Ranet.Olap.Core.Wrappers.AreaItemWrapper areaIData = new Ranet.Olap.Core.Wrappers.AreaItemWrapper();
                areaIData.AreaItemType = AreaItemWrapperType.Measure_AreaItemWrapper;
                areaIData.Caption = ms.Caption;
                List<PropertyInfo> lmpropInfo = new List<PropertyInfo>();
                foreach (var prop in ms.Properties)
                    PropertyInfo p = new PropertyInfo(prop.Name, prop.Value);
                    lmpropInfo.Add(p);
                areaIData.CustomProperties = lmpropInfo;
                listData.Add(areaIData);
                mdx.AreaWrappersColumns = listColumn;
                mdx.AreaWrappersRows = listRow;
                mdx.AreaWrappersData = listData;
                string mdxQuery = mdx.GenerateMdxQuery();
                conn.Close();

    Hi mkm1,
    According to your description, you want to use C# code to generate MDX Query. Right?
    In Analysis Servcies, we just need to use "Microsoft.AnalysisServices.AdomdClient.dll" to open connection to SSAS database and retrieve data from cube. Here are some sample code about executing MDX query using C#.
    Dim objConnection As New AdomdConnection("Data Source=localhost;Initial Catalog=Adventure Works DW 2008;")
    Dim objCommand As New AdomdCommand()
    Dim objDatatable As New DataTable
    Dim strCommand As String
    strCommand = "SELECT [Measures].[Internet Sales Amount] ON COLUMNS, "
    strCommand = strCommand & " [Date].[Calendar].[Calendar Year] ON ROWS"
    strCommand = strCommand & " FROM [Adventure Works]"
    objConnection.Open()
    objCommand.Connection = objConnection
    objCommand.CommandText = strCommand
    Dim objDataAdapter As New AdomdDataAdapter(objCommand)
    objDataAdapter.Fill(objDatatable)
    objConnection.Close()
    Since your code is more related to a third party API, we suggest you post your question to Rnet.
    Reference:
    Microsoft.AnalysisServices.AdomdClient Namespace
    If you have any question, please feel free to ask.
    Simon Hou
    TechNet Community Support

  • What is the best way to send auto mail with excel(generated by query) attachment?

    Hello,
    Need to generate first data from stored procedure and the save it to an excel file and then send mail with the same excel file.
    So am searching for the best way so that i could do all process in a single task with daily or monthly schedule.
    As per my understanding, we could it via SSIS and by sql server using
    sp_send_dbmail.
    But i have to generate excel file first by stored procedure and then end it by mail.
    So please suggest the best way to accomplish all task in a single task.
    Thanks
    Ajay 

    Hi Ajay,
    As shown in the blog mentioned by Syed, to delete records from the Excel file, you need to use Update OpenRowset command to update the corresponding rows to blank.
    Alternatively, you can also use Derived Column Transformation or Conditional Split Transformation after the OLE DB Source so that you can replace the target rows with NULL before exporting to Excel destination or just redirect the expected records to the
    Excel destination.
    Then, in the Control Flow, you can add a Send Mail Task to send the Excel file by setting it as the attachment. The following screenshot is for your reference:
    Regards,
    Mike Yin
    TechNet Community Support

  • MDX query with DMV to get all cubes and aggregation row count on SSAS engine

    Hi All,
    How can I get all cube names  on a SSAS engine server and count of number of aggregation rows in each cube ?
    I got a DMV where it shows all catalogs names and description but where can I found aggregation row count of each cube.
    Please let me know, thanks in advance.
    Maruthi...

    Hi Maruthi,
    Please check below link, hope this will help you.
    SSAS 2008 CTP6 – new DMV $SYSTEM. DISCOVER_ OBJECT_ ACTIVITY
    lists the memory usage and CPU time for each object i.e. cube, dimension, cache, measure, partition, etc. They also show which aggregations were hit or missed, how many times these objects were read, and how many rows were returned by them:
    Discover_object_memory_usage and discover_object_activity
    select * from $system.discover_object_memory_usage
    select * from $system.discover_object_activity
    Thanks
    Suhas
    Mark as Answer if this resolves your problem or "Vote as Helpful" if you find it helpful.
    My Blog
    Follow @SuhasKudekar

  • When using TODATE function MDX query is not correctly generated

    Essbase 9.3.1.2 and OBIEE 10.1.3.4.1.
    When using TODATE function MDX query is not correctly generated.
    This leads to unexpected values not only on cumulative columns in report (generated with TODATE), but also other columns (calculated with AGO function or directly read from cube) have incorrect values.
    The problem occurs when you filter on a column that is not in the select list. If you filter on just one level of dimension, results are fine. You can filter on multiple dimensions as long as you filter on just one level of each dimension.
    If you filter on two or more levels of one dimension, than results are not correct. In some cases results for TODATE column are all zeros, in some cases it is a random value returned by Essbase (same random value for all rows of that column), and in some cases BI Server returns an error:
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. Essbase Error: Network error [10054]: Cannot Send Data (HY000).
    Here is generated MDX code:
    With
    set [Grupe proizvoda2] as '{[Grupe proizvoda].[N4]}'
    set [Grupe proizvoda4] as 'Generate([Grupe proizvoda2], Descendants([Grupe proizvoda].currentmember, [Grupe proizvoda].Generations(4), leaves))'
    set [Segmentacija2] as '{[Segmentacija].[RETAIL]}'
    set [Segmentacija4] as 'Filter(Generate({[Segmentacija2]}, Descendants([Segmentacija].currentmember, [Segmentacija].Generations(4),SELF), ALL), ([Segmentacija].CurrentMember IS [Segmentacija].[AFFLUENT]))'
    set [Vrijeme3] as '{[Vrijeme].[MJESEC_4_2009]}'
    member [Segmentacija].[SegmentacijaCustomGroup]as 'Sum([Segmentacija4])', SOLVE_ORDER = AGGREGATION_SOLVEORDER
    member [Accounts].[MS1] as '(ParallelPeriod([Vrijeme].[Gen3,Vrijeme],2,[Vrijeme].currentmember), [Accounts].[Trosak kapitala])'
    member [Accounts].[MS2] as '(ParallelPeriod([Vrijeme].[Gen3,Vrijeme],1,[Vrijeme].currentmember), [Accounts].[Trosak kapitala])'
    member [Accounts].[MS3] as 'AGGREGATE({PeriodsToDate([Vrijeme].[Gen2,Vrijeme],[Vrijeme].currentmember)}, [Accounts].[Trosak kapitala])'
    select
    { [Accounts].[Trosak kapitala],
    [Accounts].[MS1],
    [Accounts].[MS2],
    [Accounts].[MS3]
    } on columns,
    NON EMPTY {crossjoin ({[Grupe proizvoda4]},{[Vrijeme3]})} properties ANCESTOR_NAMES, GEN_NUMBER on rows
    from [NISE.NISE]
    where ([Segmentacija].[SegmentacijaCustomGroup])
    If you remove part with TODATE function, the results are fine. If you leave TODATE function, OBIEE returns an error mentioned above. If you manually modify variable SOLVE_ORDER and set value to, for example, 100 instead of AGGREGATION_SOLVEORDER, results are OK.
    In all cases when this variable was modified in generated MDX, and query manually executed on Essabse, results were OK. This variable seems to be the possible problem.

    Hi,
    Version is
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
    PL/SQL Release 10.2.0.5.0 - Production
    CORE    10.2.0.5.0      Production
    TNS for 64-bit Windows: Version 10.2.0.5.0 - Production
    NLSRTL Version 10.2.0.5.0 - Production
    Sorry, in my last post i forgot to mention that i already created a function based index but still it is not using because, there is a UNIQUE constraint on that column.
    Thanks

  • SSRS report with cube – MDX query how to get an extra row with value '0'.

    Hello everyone,
    I'm unable to write the MDX query to get '0' value as first row in output. Following is my MDX query:
    WITH MEMBER [Measures].[Dummy] AS   '0'
    SELECT NON EMPTY Union( {[Measures].[Amount] },{[Measures].[Dummy]}) ON COLUMNS,
    NON EMPTY  { ([Customer].[Customer Nbr].[Customer Nbr].ALLMEMBERS * [Fiscal].[Year].[Year].ALLMEMBERS ) }
    having  [Measures].[Amount] > 5000
    ON ROWS FROM [cube]
    With above query, the output returns the value '0' as a separate column.
    I would like to get it in form of first row for [Measures].[Amount]. Like,
    Amount
    0
    500
    200
    100
    What needs to be changed to achieve the above result? I'm planning to use the above value in line chart to start the line from 0th value as described in following URL. (Note: The below URL is using SQL query and not MDX expressions.)
    http://spinerain.blogspot.in/2013/09/ssrs-line-chart-create-stacked-line-and.html
    Thanks, Ankit Shah
    Inkey Solutions, India.
    Microsoft Certified Business Management Solutions Professionals
    http://www.inkeysolutions.com/MicrosoftDynamicsCRM.html

    The round brackets in your expression are forcing an implicit crossjoin between the 3 lines. I would do the following which creates a set of the DummyYear plus the real year members and then crossjoin that with the customer set.
    WITH MEMBER [Fiscal].[Year].DummyYear AS   '0'
    SELECT NON EMPTY {[Measures].[Amount]} ON COLUMNS,
     NON EMPTY  {[Fiscal].[Year].DummyYear,
         [Fiscal].[Year].[Year].MEMBERS} *
                [Customer].[Customer Nbr].[Customer Nbr].MEMBERS
     having  [Measures].[Amount] > 5000
    ON ROWS FROM [cube]
    http://darren.gosbell.com - please mark correct answers

  • Sets in Mdx Query

    HI,
    More Sets will give the performance or less sets will give the more performance.Could you please help me.
    with
    member [Measures].[Uniquenames]
    as [Date].[Calendar Year].currentmember.uniquename
    set s1
    as
    filter(([Date].[Calendar Year].children),
    ([Date].[Calendar Year].currentmember.name='CY 2005'
    or [Date].[Calendar Year].currentmember.name='CY
    2006'
    or [Date].[Calendar Year].currentmember.name='CY
    2007'
    or [Date].[Calendar Year].currentmember.name='CY
    2008'
    or [Date].[Calendar Year].currentmember.name='CY
    2010'))
    select {[Measures].[Uniquenames]}
    on columns,
    (s1)
    on rows
    from [Adventure Works]
    indu

    thank you for reply.
    my project  UI is .net application,backend mdx queryes.
    In my project,i have import functionality.
    In IMPORT functionality,they are importing names,through excel,we are getting names,then we have to generate mdx query.
    so first i am generateing keys using with names,then i am passing keys to general mdx.
    In first query, they are importing 4000 names.so  i created 8 sets,each set contain 500 names in mdx query for retriving keys,but it takes 27 secs.
    with
    member [Measures].[Uniquenames]
    as [Date].[Calendar Year].currentmember.uniquename
    set s1
    as
    filter(([Date].[Calendar Year].children),
    ([Date].[Calendar Year].currentmember.name='CY
    2005'
    or [Date].[Calendar Year].currentmember.name='CY
    2006'
    or [Date].[Calendar Year].currentmember.name='CY
    2007'
    or [Date].[Calendar Year].currentmember.name='CY
    2008'
    or [Date].[Calendar Year].currentmember.name='CY
    2010' …. 500))
    set s2
    as
    filter(([Date].[Calendar Year].children),
    ([Date].[Calendar Year].currentmember.name='CY
    2005'
    or [Date].[Calendar Year].currentmember.name='CY
    2006'
    or [Date].[Calendar Year].currentmember.name='CY
    2007'
    or [Date].[Calendar Year].currentmember.name='CY
    2008'
    or [Date].[Calendar Year].currentmember.name='CY
    2010' …. 500))
    select {[Measures].[Uniquenames]}
    on
    columns,
    union({s1},{s2})
    on
    rows
    from [Adventure Works]
    I want to reduce time.
    could you please help me suitable mdx query as per requirement .
    indu

  • VAL_FIELD selection to determine RSDRI or MDX query: performance tuning

    according to on of the HTG I am working on performance tuning. one of the tip is to try to query base members by using BAS(xxx) in the expension pane of BPC report.
    I did so and found an interesting issue in one of the COPA report.
    with income statement, when I choose one node gross_profit, saying BAS(GROSS_PROFIT), it generates RSDRI query as I can see in UJSTAT. when I choose its parent, BAS(DIRECT_INCOME), it generates MDX query!
    I checked DIRECT_INCOME has three members, GROSS_PROFIT, SGA, REV_OTHER. , none of them has any formulars.
    in stead of calling BAS(DIRECT_INCOME), I called BAS(GROSS_PROFIT),BAS(SGA),BAS(REV_OTHER), I got RSDRI query again.
    so in smmary,
    BAS(PARENT) =>MDX query.
    BAS(CHILD1)=>RSDRI query.
    BAS(CHILD2)=>RSDRI query.
    BAS(CHILD3)=>RSDRI query.
    BAS(CHILD1),BAS(CHILD2),BAS(CHILD3)=>RSDRI query
    I know VAL_FIELD is SAP reserved name for BPC dimensions.  my question is why BAS(PARENT) =>MDX query.?
    interestingly I can repeat this behavior in my system. my intention is to always get RSDRI query,
    George

    Ok - it turns out that Crystal Reports disregards BEx Query variables when put in the Default Values section of the filter selection. 
    I had mine there and even though CR prompted me for the variables AND the SQL statement it generated had an INCLUDE statement with hose variables I could see by my result set that it still returned everything in the cube as if there was no restriction on Plant for instance.
    I should have paid more attention to the Info message I got in the BEx Query Designed.  It specifically states that the "Variable located in Default Values will be ignored in the MDX Access".
    After moving the variables to the Characteristic Restrictions my report worked as expected.  The slow response time is still an issue but at least it's not compounded by trying to retrieve all records in the cube while I'm expecting less than 2k.
    Hope this helps someone else

  • MDX query : Syntax error at token 'NONEMPTYMEMBER'

    Syntax error when executing this very simplified MDX query :
    WITH
    MEMBER [ANNEE].[YEAR1] AS
    NONEMPTYMEMBER FY10
    [FY10]
    MEMBER [ANNEE].[YEAR2] AS
    NONEMPTYMEMBER [FY10]
    [FY10]
    SELECT
    {[YEAR1],[YEAR2]} ON COLUMNS
    FROM [MICOPIGE.COM_MBU]
    Syntax error in input MDX query on line 9 at token 'NONEMPTYMEMBER'
    Note that line 9 "NONEMPTYMEMBER FY10" is a copy of line 4
    No error if I delete line 4
    Any help to understand and fix this error would be greatly appreciated.

    Precision : My goal is to reduce the 30mn duration of a complex MDX query with many calculated members, using the NONEMPTYMEMBER token.

  • Missing field for MDX query for All Members

    Hello,
    I'm using MDX query with SSRS for report and I ran into this issue:
    Query 1:
    select non empty ([Product].[Category].allmembers*[Date].[Calendar].[Calendar Year].allmembers ) on 1,
    ([Measures].[Internet Sales Amount]) on 0
    from [Adventure Works]
    go
    Query 2
    select non empty ([Product].[Category].[All]*[Date].[Calendar].[Calendar Year].allmembers ) on 1,
    ([Measures].[Internet Sales Amount]) on 0
    from [Adventure Works]
    In case I run query 2 in SSDT (query designer), it doesn't return first column whereas if I run above two queries in SSMS, I get similar columns/fields.
    How it can be resolved in SSRS to return all columns for query 1 and 2.
    Thanks,
    P
    mark it as answer if it answered your question :)

    Hello,
    I'm using MDX query with SSRS for report and I ran into this issue:
    Query 1:
    select non empty ([Product].[Category].allmembers*[Date].[Calendar].[Calendar Year].allmembers ) on 1,
    ([Measures].[Internet Sales Amount]) on 0
    from [Adventure Works]
    go
    Query 2
    select non empty ([Product].[Category].[All]*[Date].[Calendar].[Calendar Year].allmembers ) on 1,
    ([Measures].[Internet Sales Amount]) on 0
    from [Adventure Works]
    In case I run query 2 in SSDT (query designer), it doesn't return first column whereas if I run above two queries in SSMS, I get similar columns/fields.
    How it can be resolved in SSRS to return all columns for query 1 and 2.
    Thanks,
    P

  • YTD and Previous YTD in MDX query

    Hi All,
    I have two parameters Start Date and End Date. when i select the values of start date  as 5th jan 2014 and End Date as 13 th Jan 2014, i want to see the Count of Tickets from 5th Jan 2014 till 13th Jan 2014 as YTD Count of Tickets and Count
    of Tickets from 5th Jan 2013 till 13th Jan 2013 as PYTD Count of Tickets. The date range is user specific and is dynamic. I have used cube to create SSRS reports.
    Could anyone please tell me how i can pass the selected dates to the query and get YTD and PYTD values?
    Thanks
    Syed Faiz
    SFH

    Hello!!
    if you have user hierarchy in  date dimension that looks like : year-month-date than you could use following mdx query:
    with member measures.[count of tickets last year] as aggregate({parallelperiod([date].[Y-M-D].[year],1,[Date].[Y-M-D].[Date].&[20140104]):
    parallelperiod([Date].[Y-M-D].[year],1,[Date Submit].[Y-M-D].[Date].&[20140107])},measures.[count of tickets])
    select {measures.[count of tickets],measures.[count of tickets last year]} on 0,[your dimensions] on 1
    from yourcube
    where
    {[Date].[Y-M-D].[Date].&[20140104]:[Date].[Y-M-D].[Date].&[20140107]}
    y-m-d is the name of the hierarchy. This query returns results for dates between 01/04/2014 and 01/07/2014.
    In order for the query to work you must map date parameters to ssas date dimension members. You should use strtomember function. 
    These are usefull links:
    http://jsimonbi.wordpress.com/2011/03/22/using-a-date-parameter-in-ssrs-with-mdx/
    http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/using-a-calendar-for-a-date-hierarchy-pa-2010/
    HTH
    Ivan Roguljić

  • Query with Time Interval

    Hi,
    I have a weekly report which needs to be generated for a particular day.
    query is given below.
    select last_update_dt transaction_date, COUNT(*) total_transaction,
    COUNT(decode(upper(status),'SUCCESS',1)) Success_count,
    COUNT(decode(upper(status),'FAILED',1)) Failed_count,
    COUNT(DECODE(UPPER(STATUS),'ERROR',1)) ERROR_COUNT FROM GCIF_TRACKING_TABLE WHERE
    CREATE_TS BETWEEN TO_TIMESTAMP('07/11/2012 00:00:00' ,'mm/dd/yyyy hh24:mi:ss') AND
    TO_TIMESTAMP('07/11/2012 23:59:59','mm/dd/yyyy hh24:mi:ss' ) AND ACCT_NUM IS NOT NULL GROUP BY LAST_UPDATE_DT;
    Am trying to generate a query with 30 minutes interval.
    For this above query, instead of taking total count, i would require success and failure count on 30 min interval basis.
    eg: time stamp: 00:00 - 00:30 , 00:31 - 01:00 etc
    Could anyone pls help me in this. Thanks in advance.
    can anyone revert on this pls. i need it very badly.
    Edited by: 946948 on Jul 17, 2012 5:23 AM

    This is the forum for Oracle's SQL Developer tool, not for general SQL or PL/SQL questions. This question would be better answered in the PL/SQL.

  • Error MDX when executing WBI query with different prompt but same text

    Current version is BO XI 3.1 SP2 FP 2.6
    Connected with SAP BI7
    Identified problem :
    when using same text prompt in different filters, only the first one is correctly answered, the MDX code for following ones are not correctly generated : the engine uses the right filter but applied to the object from the first filter which gives a MDX code error.
    Example :
    In a report :
    - asking a user choice on 'document month' for operational view
    - using the same answer to fill up the 'posting month' in financial view
    Document month (0FISCPER) filter is filter !V000001
    Posting month (FISCPLCD) filter is filter !V000002
    Question text is unique : "Single Year Period ?" and should be sent to both prompts/variable.
    When using the same text prompt, the MDX code generated is :
    SELECT  { [Measures].[4IUX93YJGXQEHGLX0T0GPNA9Y] }  ON COLUMNS , NON EMPTY CROSSJOIN( [0FISCPER].[LEVEL01].MEMBERS, [FISCPLCD].[LEVEL01].MEMBERS ) DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS FROM [CATS_M01A/ZGL_CATS_UTILISATION] SAP VARIABLES [!V000001] INCLUDING [FISCPLCD].[Z12010006]
    Please notice that in this generated code, the filter !V000001 is applied to the FISCPLCD object, while filter !V000001 is related to document month. A MDX error is generated.
    Any clue to solve this issue ?
    Thank you for your help.
    G.OM.
    Edited by: GERALDINE OMNES on Jan 14, 2011 12:44 PM

    Ok, I've simplified the case.
    Here is the real case :
    Object filter =
    Based on object =
    .[LEVEL01]
    Object filter =
    Based on object =
    .[LEVEL01]
    In WBI query result I take these objects :
    .[LEVEL01]
    .[LEVEL01]
    .[4IUX93YJGXQEHGLX0T0GPNA9Y]
    In query filters, my 2 filters with same text :
    1.
    I run the query.
    Answer to question 'Single Year Period ?' = Period 06 2010
    ==> MDX error
    A database error occured. The database error text is: Echec de l'exécution de la requête MDX SELECT  { .[4IUX93YJGXQEHGLX0T0GPNA9Y] }  ON COLUMNS , NON EMPTY CROSSJOIN( .[LEVEL01].MEMBERS, .[LEVEL01].MEMBERS ) DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS FROM SAP VARIABLES INCLUDING .[Z12010006] INCLUDING .[Z12010006] avec l'erreur Invalid MDX command with . (WIS 10901)
    And you can see that the value sent to both filters is the same and come from the first filter .[Z12010006] instead of applying the value to each filter .[Z12010006] for the first one and .[Z12010006] for the second one.
    Please, notice that if I change the order of this 2 filters in the WBI query, the MDX generated become :
    SELECT  { .[4IUX93YJGXQEHGLX0T0GPNA9Y] }  ON COLUMNS , NON EMPTY CROSSJOIN( .[LEVEL01].MEMBERS, .[LEVEL01].MEMBERS ) DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS FROM SAP VARIABLES INCLUDING .[Z12010006] INCLUDING .[Z12010006]
    Thanks for your help.
    G.OM.

  • Filters not getting passed in MDX query while using SAP BW with OBIEE

    Hello,
    I've been working on OBIEE with SAP BW as back-end. I've created some reports & those are working fine when there is less amount of data. But when I try to run a report with 3 dimensions & 1 fact it throws an error saying "No more storage space available for extending an internal table". When I checked MDX query, I found that the filters that I had applied to request & also selected from prompts are not getting passed in that query. So, I tried running a simple request using a simple filter in Answers. Although this request returns results but I can't see filter conditions in query. MDX query always show crossjoin but I can't see filter conditions anywhere.
    Is it the normal OBIEE behaviour OR am I doing something wrong in there? Can you please help me out with this?
    Thanks,
    Rocky

    Hello Sainath,
    We tried those things. But it is still giving same error.
    State: HY00. Code: 10058. [NQODBC][SQL_STATE:HY000][nQSError: 10058] A general error has occurred. XML/A error returned from the server: Fault code: "XMLAnalysisError.0X80000005". Fault string: "The XML for Analysis provider encountered an error: MDX result contains too many cells (more than 1 million)". (HY000)
    The problem here, I think, is the filter parameters are not getting passed in the MDX query. Any idea why would that happen? Is there any setting to do so?
    Thanks in advance for help.
    Regards,
    Rocky

Maybe you are looking for

  • 80G Video iPod - Not sure what the problem is

    So this problem just randomly started occuring. What will happen is my iPod will freeze completely, and then it will go to this screen which has a warning i have never seen before. It is an iPod with a triangular warning sign on it (with exclamation

  • Passing parameter to EA60 transaction from FM

    Hi, I have a requirement that i need to call EA60 transaction using CALL TRANSACTION and pass all the required invoice details, print parameters and Re-print invoice automatically using the FM which i have created after execution. Could anyone help m

  • Saved texts

    I have texts saved on my iphone 3 but am getting an iphone 4. I need to save these messages on my phone. Is there anyway I can do that?

  • Pages comments panel open with every document

    For whatever reason, Pages keeps opening up the comment panel on the left side of my Pages documents when I open them, even when there isn't a single comment added to the Pages document. I have to manually close the comment box and then save the file

  • ITunes computer authorization failure ( tried all fixes )

    Computer authrization problem in iTunes Hi to all. I am having the common problem of computer authorization in iTunes, so i can't sync my iPad and transfer my purchases. I have read about all the "popular" fixes and none of them worked. I am listing