Skip to main content

Logical Views to specify an outer join between two attribute lookup tables when only attributes are on a report


Logical Views to specify an outer join between two attribute lookup tables when only attributes are on a report


Apart from using the VLDB properties to create the left outer join,  article describes how to use the Logical View to specify an outer join between two attribute lookup tables when only attributes are on a report. This method exists as attribute only outer joins will not be generated on their own by the MicroStrategy SQL engine. This is because they are only necessary with ragged/unbalanced hierarchies which are not supported as null attribute IDs are not supported (parent elements with no child elements or child elements with no parents). 

Brief instructions are provided using the example below.

Consider, two attributes: Parent01 and Child01 have a parent-child relationship. Their Lookup tables are defined, as follows
Parent01Child01



Note that although there are 4 ID values for the attribute Parent01, there is no defined relationship for the Parent01 element p4 (ID=4) in the Lookup table for attribute Child01. Placing both attributes on a report will result in the following SQL and data returned. Parent01's element p4 will not be returned. This is known as a ragged hierarchy and is not supported in MicroStrategy.
 
SQLData Returned
select a12.parent01_ID parent01_ID,
a13.parent01_DESC parent01_DESC,
a12.child01_ID child01_ID,
a12.child01_ID child01_ID0
from child01 a12
join parent01 a13
on (a12.parent01_ID = a13.parent01_ID)


To overcome this issue,  create a Logical View with the following SQL. Note the Left Outer Join.
 
SQLLogical View Definition
select a12.parent01_ID parent01_ID,
a12.parent01_DESC parent01_DESC,
a11.child01_ID child01_ID,
a11.child01_DESC child01_DESC
from parent01 a12
left outer join child01 a11
on (a11.parent01_ID = a12.parent01_ID)


Modify the attribute Child01 to include the new Logical View as a source table and redefine a relationship to attribute Parent01 using the new Logical View.
 
Add Source TableAdd Relationship


Executing the same report will now return all elements for Attribute Parent01.
 
SQLData Returned
select /* RRR01 */ a12.parent01_ID parent01_ID,
a12.child01_ID child01_ID
from (select a12.parent01_ID parent01_ID,
a12.parent01_DESC parent01_DESC,
a11.child01_ID child01_ID,
a11.child01_DESC child01_DESC
from parent01 a12
left outer join child01 a11
on (a11.parent01_ID = a12.parent01_ID)) a12


Comments

Popular posts from this blog

Microstrategy Custom number formatting symbols

Custom number formatting symbols If none of the built-in number formats meet your needs, you can create your own custom format in the Number tab of the Format Cells dialog box. Select  Custom  as the Category and create the format using the number format symbols listed in the table below. Each custom format can have up to four optional sections, one each for: Positive numbers Negative numbers Zeros Text Each section is optional. Separate the sections by semicolons, as shown in the example below: #,###;(#,###);0;"Error: Entry must be numeric" For more examples, see  Custom number formatting examples . To jump to a section of the formatting symbol table, click one of the following: Numeric symbols Character/text symbols Date and time symbols Text color symbols Currency symbols Conditional symbols Numeric symbols For details on how numeric symbols apply to the Big Decimal data type, refer to the  Project Design Guide . ...

No 'Alert' option appear when trying to create an alert-based subscription in MicroStrategy Distribution Services

The 'Alert' option does not appear when attempting to create an alert-based subscription in MicroStrategy Distribution Services In MicroStrategy Distribution Service 9.x and 10.x, and 11.x versions it is possible to create an alert-based subscription. When right-clicking the metric header of a report in MicroStrategy Web 9.0.x, the 'Alerts' option does not appear:    Cause : This issue occurs because the user attempting to create the alert does  not have all of the necessary privileges on alerts.   Fix : In order to create an alert-based subscription, the following privileges are required: In order ti get permissions to create alerts the user should be given the following privileges by the admin: New Version of Microstrategy 11.x: Server- Distribution: Older Versions of Microstrategy 9.x, 10.x etc..: Web Reporter > Web user Web Analyst > Web create alert   ...

Reduce Intelligent Cube Size By Finding Intelligent Cube Objects Which Are Not In Use

Reduce Intelligent Cube Size By Finding Intelligent Cube Objects Which Are Not In Use If the i-cubes can potentially be reduced in size an audit can be performed on the cube objects to see which cube objects are not being used by any of the view reports, documents, or dossiers.   The below are examples for a few of the common metadata database platforms . NOTE: To perform this audit, queries are run against the MicroStrategy metadata database. Ensure a metadata backup is taken prior to performing the below actions. Steps: 1) Identify the object ID of the Intelligent cube to be audited by checking the objects Property window 2) Identify the object ID of the project this cube exists within by opening the Project Configuration Sample Cube ID =   CFAF1E9B4D53990698C42E87C7AF2EB5 Sample Project ID =  B7CA92F04B9FAE8D941C3E9B7E0CD754   3) Run the below SQL against the metadata database by replacing the Cube ID and Project ID within the respective ...

Scheduling a report or document to be sent to an FTP in MSTR

Scheduling a report or document to be sent to an FTP server You can have a report or document automatically delivered to a location on your FTP server on a specific schedule. To do so, you must subscribe to the report or document, as described in the steps below. You can customize your subscription by typing macros in the  File Name ,  Sub-folder , or  Zip File Name  fields. These macros are automatically replaced with the appropriate text when the report or document is delivered. For example, you create a subscription to a document. If you type  {&Project}  in the  File Name field, the name of the project in which the document is saved is displayed in the name of the document when it is delivered. • This procedure assumes that an administrator has already added your FTP server as a new device in Developer. Steps to do so are included in the  System Administrator Help . To send a report or document to an FTP server on a schedule ...

Compound key attribute

Compound key attribute A compound key attribute is an attribute whose primary key is made up by the combination of two or more columns. The multiple columns are joined with other attributes, typically in a many-to-many relationship . To create a compound key, users must create multiple attribute forms, group them together and set the form group as the key for the attribute. Use the same steps as specified in the help menu: Open attribute editor (right-click on attribute and select 'Edit') Select the forms that will make up the compound key From the 'Edit' menu, choose 'Group' NOTE: Modifying the key form will trigger required updates when saving. This may make related application objects (reports, filters and metrics) unusable. Click on 'Yes' to continue, when prompted, in a dialog box, to confirm this action Save the changes. Choose 'Update Schema' from the Schema menu

Create a transaction services photo uploader

Create a transaction services photo uploader   1.  Create a new table "photo_upload" in Tutorial warehouse database (the default location: C:\Program Files\MicroStrategy\Tutorial Reporting\TUTORIAL_DATA_7200.mdb), as shown below:    2. The 'photo_upload' table has to be pre-populated with *exactly* 10 rows of data, the values for the 'ID' column should be 1-10 and the values for the 'uploaded' column should all be 0 3.  In MicroStrategy Desktop, create a freeform report "R1" based on the new table "photo_upload" in Tutorial data created at step 1, as shown below:   SELECT Location, Description, ID, uploaded, numbers FROM PHOTO_UPLOAD 4.  Create another table for transaction insert SQL. Make sure to create an 'autonumber' type ID as primary key for this table, or auto_increment ID for different DBs.                     5. Create...

Create an alert-based subscription in MicroStrategy Distribution Services

Create an alert-based subscription in MicroStrategy Distribution Services on Web Subscription to a report or Report Services document which will be executed when a certain conditional threshold is met based on another executing report. For example, a scheduled report executes which shows the Revenue by day for the past week. If the Revenue on any one day falls below a certain value, a subscription to another report or Report Services document can be triggered and delivered to a recipient. An alert based subscription can only be created directly on a report; however, another report or Report Services document can be delivered when the alert based subscription is triggered. Note: you need a grid report to create an alert and you cannot create if you want to create on a document with text boxes. The following example will walk through the basic steps on how to setup a subscription based on an alert like this: Follow the brief  steps bel...

Replace object names in bulk using MicroStrategy Repository Translation Wizard

Replace object names in bulk using MicroStrategy Repository Translation Wizard Users may need to replace  object names  in bulk.  This can be done using MicroStrategy Repository Translation Wizard in MicroStrategy Developer 9.4.x - 10.x.  Follow the steps below for an example of how to do this.  Create an empty MD shell in Microsoft Access.  Run Repository Translation Wizard from the Start Menu -> Programs -> MicroStrategy-> Object Manager In the "Metadata Repository" screen, select the "Project Source Name" and check the "Export Translations" option, as shown in the following screen shot: In the "Languages" screen, select a project, a translation reference language and a language (choose English as default), as shown in the following screen shot: In the "Select objects" screen, if one needs to select a certain type of object, check the option  Use the results of a search object .  Then, click 'New' to...

Apply or Pass-through functions in Microstrategy

Ap ply (Pass-Through) functions MSTR Apply functions provide access to functions or syntactic constructs that are not standard in MicroStrategy but are provided by various RDBMS systems.. Syntax common to Apply functions Apply Function Name   ("expression with placeholders", Arg1, Arg2, Arg3, …ArgN) where: Apply Function Name  – is a generic name used for the predefined pass-through functions described above expression with placeholders  – is the string describing the actual expression or syntax that the engine uses while generating the SQL and which is sent to the RDBMS. The placeholders are represented by #0, #1, and so on. "#" is a reserved character for MicroStrategy. Arg  – is an argument that replaces the parameter markers in the pattern. Arg1 replaces #0, Arg2 replaces #1, and so on. There are   five  pre-defined Apply functions to replace regular, predefined functions of the same type. For more details, cli...