Best way to create hierarchies tables

Good morning all,
I wanted to discuss the best practices of creating hierarchies to be consumed by OBIEE. As far as I understand, OBIEE has been optimized to use flattened hierarchies, such as:
ROW_WID CITY COUNTRY
1 NEW YORK CITY USA
2 MOSCOW RUSSIA
3 KIEV UKRAINE
4 SYDNEY AUSTRALIA
5 ATLANTA USA
Let's call it option 1. The only problem with this is that it has a potential to grow very wide. Also, There's a chance for confusion when there're duplicate entries, such as "New York" (city) and "New York State". Also, it's not always possible to define hierarchical relationships between data in a flat table - so-called ragged hierarchies. I found two major way of dealing with those (stack and flattening them out). Are there any other ways to deal with those? Specifically, I'm interested in dealing with hierarchies that involve complex positioning (a person might be a manager vertically, but managed horizontally - or - a person can have 2 managers - on different levels).
Also, in the example above - can I create dimensional outriggers (assign surrogate keys instead of text values to the dim - such as having NEW YORK as 100, MOSCOW as 200)? Sort of snowflaking a dimension. I was asked to do a proof of concept for this - but haven't been successful so far. If yes, could you please provide a simple Dim Outrigger < Dim < Fact diagram.
Thank you

Thanks Peter - I've checked that document before (I believe it's based on Kurt Wolffe's document on Siebel Analytics which I checked as well).
This option is fine if you're not going to do frequent changes - but in my case - it'll be a hell to maintain. We're sort of trying to prototype best solution - and it seems as flattening hierarchies is the best option, of course, given its limitations.
Also, there's another option of taking a different path and splitting and then building separate hierarchies

Similar Messages

  • Best way to create a table based on another table

    Hello,
    I am trying to create a table based on another table with all the data in it. It has large data.
    create table <tablename> as select * from table1.
    Is this the best way of doing it or is there any other way. please advice.
    thanks

    I am suggested to create new table as
    create table <newtable> as
    select * from <oldtable> where rownum < 1;
    then
    alter table <newtable> compress;
    then
    insert /*+ append */ into <newtable> as select * from <oldtable>;
    but i getting an error saying missing values key words ora- 00926.
    please advice

  • What the best way to create User defined table with ADDON purpose

    Hi folks, how are you ?
    I´m beginner in development to business one, and I m studying to develop ISV addons.
    But, during my exercises and analisys, I learned that have two ways to create tables and fields in business one. One way is throght by wizard in business one using Tools Menu > Configuration Tools > User Defined Tables >
    Obs: I ´m using Business One Patch Level 9.
    Other way, is create the tables and fields using DI API
    But, my question is. When I develop one addon, or one UDO form that uses one set of user defined tables or used defined fields that where created by the first way (by wizard in B1), how I deploy this in other business one installation ? The package process will ensure the creation of this tables in another enviroment or I must implement the creation of user defined tables using DI API so that this code is called during the installation?
    If in cases of addon develop I must use DI API to create user defined tables, How can I use my classes with this responsibility in package process ?
    Thanks my friends.

    Hi Renan,
    You just need to put your logic in to the startup of your application, after you've established your connection to the UI API and DI API. All this will be triggered in the constructor of your main class.
    namespace MyNamespace
    public class MyAddon
      bool runAddon = true;
      bool initialised = false;
      const string ADDON_NAME = "My Addon";
      public static void Main()
            MyAddon addOn = new MyAddon();
            if(runAddon)
                  System.Windows.Forms.Application.Run();
            else
             Application.Exit();
      public MyAddon()
            // Connect to SBO session for UI
            if(!SetApplication()) runAddon = false;
      private bool SetApplication()
            // Code goes in here to establish UI API and DI API connections
            // See SDK samples for examples
            // You should also define and filter the UI API events your addon will trap at this stage and create any menus
            // Call your routine to check if the required UDFs/UDTs exist on this company
            initialised = CheckInitialisation();
            if (!initialised)
               //  AddOn not yet intialised on this company so prompt the user to run the intialisation process
              int iResponse = app.MessageBox("The " + ADDON_NAME + " addon will now create all required fields and tables."
                                             + System.Environment.NewLine + System.Environment.NewLine
                                             + "WARNING: It is strongly recommended that all other users are logged out of this company "
                                             + "before running this process. Are you sure you wish to continue?", 2, "Yes", "No", "");
              if (iResponse == 1) initialised = InitialiseAddOn(); // Call your routine to create the objects
            return true;
    Kind Regards,
    Owen

  • What is the best way to create a SSRS 2005 Line Chart Report for a 12 month period?

    I'm looking for advice on how to create a SQL Server 2005 query and line chart report for SSRS 2005.
    I need to display the peak number of patients assigned to a medical practice each month for a 12 month period based on the end-user selecting a
    single month and year.
    I've previously created a report that displays all patients assigned to the practice for any single month but I’m looking for advice on how to
    how to produce a resultset that shows the peak number of patients each month for a 12 month period. I thought about creating a query that returns the peak count for each month (based on my previously created report which displays all patients assigned to the
    practice for any single month) and then use a UNION statement to join all 12 months but I'm sure that isn't the most efficient way to do this. The other challenge with this approach (twelve resultsets combined via a UNION) is that the end-user needs to be
    able to select any month and year for the parameter and the report needs to display the 12 month period based on the month selected (the month selected would be the last month of the 12 month period).
    For the report I’ve previously created that displays all patients assigned to the practice for any single month, the WHERE statement filters the
    resultset on two fields:
    Start Date - The date the patient was assigned to the practice. This field is never null or blank.
    End Date - The date the patient left the practice. This field can be null or blank as active patients assigned to the practice do not have an End Date. When the patient
    leaves the practice, the date the patient left is populated in this field.
    Using these two fields I can return all patients assigned to the practice during Nov 2012 by looking for patients that meet the following criteria:
    start date prior to 11/30/2012 (using the last day of the month selected ensures patients added mid-month would be included)
    AND
    end date is null or blank (indicates the patient is active) OR the end date is between 11/1/2012 -11/30/2012 (returns patients that leave during the month
    selected)
    Regarding the query I need to create for the report that displays the peak count each month for 12 months, I'm looking for advice on
    how to count patients for each month the patient is assigned to the practice if the patient has been assigned for several months (which applies to most patients). Examples are:
    John Doe has a start date of 6/01/2012 and an End Date of 10/07/2012
    Sally Doe has a start date of 8/4/2012 and no End Date (the patient is still active)
    Jimmy Doe has a  start of 7/3/2012 and an End Date of 9/2/2012
    Given these examples how would I include John Doe in the peak monthly count each month for May - October, Sally Doe in the peak monthly count for
    August - December and Jimmy Doe in the peak monthly count for July – Sept if the end-user running the report selected December 2012 as the parameter?
    Given the example above and the fact I'm creating a line chart I think the best way to create this report would be a resultset that looks like
    this:
    Patient Name              
    Months Assigned
    John Doe
    June 2012
    John Doe                     
    July012
    John Doe                     
    Aug 2012
    John Doe                     
    Sept 2012
    John Doe
    Oct 2012
    Sally Doe                     
    Aug 2012
    Sally Doe                     
    Sept 2012
    Sally Doe
    Oct 2012
    Sally Doe                     
    Nov 2012
    Sally Doe
    Dec 2012
    Jimmy Doe                  
    July 2012
    Jimmy Doe
    Aug 2012
    Jimmy Doe
    Sept 2012
    From the resultset above I could create another resultset that would count\group on month and year to return the peak count for each month:
    June 2012 - 1
    July 2012 – 2
    Aug 2012 - 3
    Sept 2012 - 3
    Oct 2012 - 2
    Nov 2012 - 1
    Dec 2012 - 1
    The resultset that displays the peak count for each month would be used to create the line chart (month would be the X axis and the count would
    be the y axis).
    Does this sound like the best approach?
    If so, any advice on how to create the resultset that lists each patient and each month they were assigned to the practice would be greatly appreciated.
    I do not have permissions to create SPs or Functions within the database but I can create temp tables.
    I know how to create the peak monthly count query (derived from the query that lists each patient and month assigned) as well as the line chart.
    Any advice or help is greatly appreciated.

    Thanks for the replies. I reviewed them shortly after they were submitted but I'm also working on other projects at the same time (hence the delayed reply).
    Building a time table and doing a cross join to my original resultset gave me the desired resultset of the months assigned between dates. What I can't figure out now is how to filter months I don't want. 
    Doing a cross  join between my original resultset that had two dates:
    08/27/2010
    10/24/2011
    and a calendar table that has 24 rows (each month for a two year period)
    my new resultset looks like this:
    I need to filter the rows in yellow as the months assigned for stage 3 that started on 8/27/2010 should stop when the patient was assigned to stage 4 on 10/24/2011.
    You'll notice that Jan - Sept 2011 isn't listed for Stage 4 assigned on 10/24/2011 as I included a filter in the WHERE clause that states
    the Months Assigned value must be greater than or equal to the date assigned value.
    Any advice would be appreciated.

  • What is the best way to create a database schema from XML

    What is the best way to create a database schema from XML?
    i have  a complex XML file that I want to create a database from and consistently import new XML files of the same schema type. Currently I have started off by mapping the XSD into Excel and using Mysql for Excel to push into MySQL.
    There must be a more .net microsoft solution for this but I cannot locate the topic and tools by searching. What are the best tools and way to manage this?
    Taking my C# further

    Hi Saythj,
    When mentioning "a database schema from XML", do you mean the
    XML Schema Collections? If that is what you mean, when trying to import XML files of the same schema type, you may take the below approach.
    Create an XML Schema Collection basing on your complex XML, you can find
    many generating tools online to do that.
    Create a Table with the above created schema typed XML column as below.
    CREATE TABLE youTable( Col1 int, Col2 xml (yourXMLSchemaCollection))
    Load your XML files and try to insert the xml content into the table above from C# or some other approaches. The XMLs that can't pass the validation fail inserting into that table.
    If you have any question, feel free to let me know.
    Eric Zhang
    TechNet Community Support

  • What is the best way to create CRUD datagrids

    What is the best way to create CRUD datagrids that tell CF
    components to update sql tables. I find that I'm having to vreate
    all these columns with custom properites and its a bit of a chore:
    <mx:DataGridColumn id = "NatWest" dataField="NatWest"
    headerText="NatWest" editable="false"
    wordWrap="true"
    textAlign="right"
    headerStyleName="centered"
    labelFunction="price_labelFuncNatWest"
    sortCompareFunction="price_sortCompareFunc">
    I don't really want to use any wizards as I want control over
    my code.

    Hi Saythj,
    When mentioning "a database schema from XML", do you mean the
    XML Schema Collections? If that is what you mean, when trying to import XML files of the same schema type, you may take the below approach.
    Create an XML Schema Collection basing on your complex XML, you can find
    many generating tools online to do that.
    Create a Table with the above created schema typed XML column as below.
    CREATE TABLE youTable( Col1 int, Col2 xml (yourXMLSchemaCollection))
    Load your XML files and try to insert the xml content into the table above from C# or some other approaches. The XMLs that can't pass the validation fail inserting into that table.
    If you have any question, feel free to let me know.
    Eric Zhang
    TechNet Community Support

  • Best way to create menus [was: Queston]

    What technique or is a template used to create the menu for this Adobe page? I have been studying web development (reading and tutorials) and the sections are always short on creating menus.  Mostly, covers creating buttons with behaviors in Fireworks and inserting them into Navigation Bars and Tables?  What are the best ways to create menus?
    [Subject line edited by moderator]

    Howdy,
    The best way is definately not the Fireworks way. Never has been.
    Take RJweb's advise and check out the PVII Menu Magic. I use that all the time and its very easy to customize with its well laid out CSS files. I havn't found anything easier to use and customize yet.
    Brad Lawryk
    Community Expert: Dreamweaver
    Usergroup Manager: Northern British Columbia Adobe Usersgroup

  • Best way to create a conact list from the user profile properties

    We have a customer looking for a phone book utility, starting with a table showing main user information and with some search options. We would like o base it on the user profile properties and not to create an indipendent studion record browser porlet.
    What is best way to create a conact list from the user profile properties ?

    I did something like this using search.  It can get messy, so you need to take care with it.
    * Identify the properties you want to make accessible to search (ex: name, etc.)
            - add them to the user property map
            - flag them as searchable
    * I broke down and used the native server API.  I'd still suggest this approach.
    * Write some simple code to do vcard export if you like
    (my code is all in vb.net)
    I really believe this is the &#034;right&#034; approach, but honestly, this was a bit painful and has been
    messy for us given some other business issues.  (to my chagrin we have users with 2-letter last
    names...)
    I have code you're welcome to poke at, but it's more or less slapped together and has various
    different search methods commented out so you can see how I tinkered w/ the remote vs. server
    API.
    If you'd like it mail me at [email protected] and I'll send you a zipped copy w/ a
    readme.  I hope it may be useful to you as both a starting reference.

  • Best way to create a Contact Us form

    What is the best way to create a contact us form?
    I created mine using a table and the form sleection of DW CS6.
    Thanks!
    Janelle

    Creating the form itself is really only half the job.
    You can have a marvelous form created using html and DW's built in form items. Those items can be in a table, or not, that part is up to you. The next step is making the form "do something".
    The simplest way to make a form work, is a mailto: link in the form action attribute, but it's the absolute worst way to go. Mailto: links require the viewer to have an email client installed and set up on the computer they're using to submit your form. If they don't (as in the case of Gmail, htomail, yahoo, etc mail users) when they click Submit, absolutely nothing will happen.
    Another drawback of using a mailto: link for your form submission is that email address is now open to every spam email harvester on the internet. If you like certain "blue pill emails" then there wouldn't be an issue, but if you are like the majority of society, you won't be sending funds to any Nigerian doctors either and won't want to be spammed constantly.
    Personally, I use the Formmail script, available for free at http://www.tectite.com for pretty much all of my html forms. As long as your server has PHP installed (most do) the Formmail script will work very well for you. They have a ton of "How To" info on their site and the script itself is very robust with loads of features you can use, or not, at your discretion. They also have a very well documented troubleshooting section and a searchable forum that take care of the most common issues you run into.
    Your next step is "find out what server scripting language you have available on your server". From there, you'll need to find/write a compatible script, then attach your form to it.

  • Best way to create frame with stroke around a paragraph?

    What is the best way to create a frame with a stroke around text? I
    always thought it was with an inline frame, but now I see that trying to
    put the cursor in the text is very difficult because the frame blocks
    the cursor. Is there a better way?

    Thanks guys.
    What I was doing was putting the anchored frame in an empty paragraph
    above the paragraph that needed the box. The problem was when I tried to
    put the cursor in the text the anchored frame blocked it. Why is an
    anchored frame on top of text?
    The easy solution would be to cut/paste the text into the anchored frame
    (which would be similar to Ole's single cell table idea). I didn't want
    to go this route for two reasons:
    1) I don't want to cut and paste every paragraph.
    2) I didn't want the story to be broken up. I wanted it to be one long
    flow of text. It makes tings easier just in case the paragraphs have to
    break across two pages.
    Jongware's underline/strikethrough idea is another good one, but I don't
    like the idea of putting in all those extra characters.
    What I ended up doing was using paragraph rules. I set the rule above to
    1pt larger on all sides than the rule below so it looked like a box with
    a stroke. Of course, the problem with paragraph rules is getting it the
    right size. I wrote a script that calculates the size of the text and
    sets the rule size the correct amount.
    Of course this still has its problems when the boxes need to break pages...

  • Need help knowing best way to create record

    What is the best way to create a new record... I have a form pulling info from about 20 tables. When the user wants to create a new record, I want a new form to open and allow them to select the values based on the foreign key fields so it makes more sense than just random numbers.
    The problem I'm having is knowing when and how to insert. Should the "new record" form be it's own database block that inserts from within it. (but then when they go back to the original form they must requery to see the new value.) Or what about copying each field back to the original form. I'm new to forms and would appreciate any insight and tips.

    would a wire like this help me?
    I doubt it. You want FireWire.
    Take look at the Canopus ADVC300. It comes with a nice Macintosh application that works flawlessly with iMovie 06.
    http://www.canopus.com/products/ADVC300/index.php
    Yes, it does cost more but it works.

  • Best way to create tasks and assign to sharepoint groups

    Hi everyone, I have a custom list which contains newsletter info that is to be seen by around 400 groups (they are stores) and then I need them to mark each list item as 'completed'
    I have been trying to figure out the best way to do this and decided to keep the custom list and somehow link it to a task for each item in the list. We have nintex so was thinking of creating a workflow to create a separate task for each group (store) so
    they can mark it as completed.
    Is this the best way to go about it or am I completely off track?
    Basically all I need is a list which contains around 30 items and around 400 groups (stores) which contain users (store staff) to be able to mark items on the list as completed so it recognises that each store has completed each task.
    Thanks

    Hi  ,
    According to your description, you want to find the best way for creating tasks for 30 list items and assigning the task to around 400 groups.
    For the workflow, it is heavy  that  you need to create around 12000 (30*400) tasks .  In my opinion, the best way is to do with a custom timer job. For more information, you can refer to the
    blog:
    http://www.splessons.com/2013/12/create-a-timer-job-in-sharepoint-2013/
    Thanks,
    Eric
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support,
    contact [email protected]
    Eric Tao
    TechNet Community Support

  • Is there a way to create a table of contents listing the order of tabs(sheets) in a Numbers document?

    I am planning my wedding and I have this huge Numbers document with 20+ tabs and I have plans to add many more tabs. Is there a way to create a table that has two columns: column 1= order that a tab appears, column 2=tab name? For example, my first three tabs are called Venues, Must Haves, and To Do List (in this order. I'd want this table of contents to be in the first sheet of the document, so it would be like sheet 1. Then I 'd want like the cells of column 1 to be like 2, 3, 4 (2nd, 3rd, 4th sheet in the document), and then the cells of column 2 to say Venues, Must Haves, and To Do List. I can make a tiny table of one cell in each sheet that I copied the name of the sheet and then do like a cell reference for column 2, but I'm having trouble w column 1.

    There is no referential value for the order of the sheets, just the sheet name. Only two things I can think of to suggest:
    Do the same thing for the first column that you do with the second (i.e. put a referential column in the same table as the Name and point to that).
    Seriously consider using a word processor program. Numbers is probably the wrong tool.

  • Is there a way to create "temporary" tables in SAP database?

    Hello,
    Is there a way to create temporary tables in ABAP?
    Here is our scenario:
    1. Invoke a custom RFC that creates a temporary table and returns the name of the table.
    2. Invoke another custom RFC and pass this table name as parameter. This RFC internally does some INNER JOIN with the temporary table.
    3. Invoke the third RFC to delete the temporary table.
    Note that the name of the table cannot be static. We have many users using our application simultaneously and connecting to the SAP server.
    I would appreciate it if you could point me in the right direction.
    Thank you in advance for your help.
    Peter

    I just ran into a similar issue.  While only calling the select statement 2 times, each time had so many entries in the 'for all entries' list, that the compiler converted this into about 700 calls to the select.  Now since the select joined three real tables on the database, the trace shows this one select as being the slowest item in this application.
    I think that happened because 'for all entries' gets converted to an 'IN' clause, and then the total number of characters in any SQL statement has an upper limit.   So the compiler must make the select statement over and over until it covers all entries in the 'for all entries' list.  Is that correct?
    Since every database I ever saw has the concept of db temporary tables, I have used db temp tables many times for this sort of thing.
    The ABAP compiler could determine that more than one IN statement will be need, then use an alternate: write all the FOR ALL ENTRIES to a db temp table, then join on the db temp table, then drop db temp table.  Since the compiler does this sort of thing, no application code needs change to get the speed boost.

  • Best way to create pop-up menu's

    Hi All,
    I have been having a heck of a time doing something that i
    would have assumed to be relatively simple - specifically creating
    a pup-up menu.
    My first set of approach was to dynamically create a movie
    clip on a button rollover, and within that movieclip create several
    other movie clips that i then assigned actions too. The problem was
    that since i applied a action on "rollout" on the initial movie
    clip, it became a button, and as such all of the sub
    movieclips/buttons became in active (any click was only detected on
    the parent).
    My second set of attempts have been around the MenuComponent
    (see other posts), but here too i have hit problems, initially with
    animation and depth. I solved the animation issue, but the depth
    problem remains.
    Now, i see pop-up menu's everywhere, so i assume that this is
    a relatively simple problem - so what am i missing. A google search
    showed up lots of examples of how to do using menu that are created
    in the UI (rather than purely in AS), using purchased components.
    The first case is not an option since i need to create it fully
    dynamically, the second would be an option - however i typically
    need a far greater level of visual control than off the shelf
    components provide (hence i have needed to build up my own class
    library for many common tasks).
    So after all that, i have a simple question.
    "What is the best way to create a dynamic popup menu in
    AS2?"
    Regards
    Neil

    I guess you want to make your own popup menu, if I understand
    correctly. Nothing simpler, your first attempt was in the right
    direction, you just don't assign button actions to the parent clip,
    because you won't get the child clips to work, but add another
    child at the lowest level inside the parent, that acts as a
    "background" clip/button.
    And for the rollout for the entire popup, you can add a
    transparent clip just under the popup (which is at the currently
    topmost depth) covering the entire stage, give it rollover that
    acts as your rollout, and make it not use the hand currsor, so you
    can't tell it's there.
    That's how I do it, anyways..

Maybe you are looking for

  • Port Forwarding for L2TP/IPSec VPN Behind Verizon Actiontec MI424WR-GEN2 Rev. E v20.21.0.2

    I've got a NAS setup with various services running on custom ports to help minimize exposure (especially to script kiddies). I've tested everything both internally and externally to confirm they all work, and even had someone at a remote location con

  • X3500 No Connection between LAN and WLAN

    Hello, I've purchased and installed an x3500 modem, and can connect to internet using both wired and wireless but my problem is, i can not ping or see/detect devices between LAN and WLAN.How can i fix this problem? Mac filtering is disabled on wirele

  • Idvd performs better than dvdsp

    I have tried authoring a 75 min project using compressor and dvdsp and I get this strange pulsing pixelation in certain shots. I author the same project in idvd, I don't get any pulsing, but in the last 10 minutes of the project, I get pixelation on

  • Service order - System status

    Dear All Here is my business process Create Service order Confirmation Technical complete Create service billing request(Debit memo) Create Invoice After completion of all above process I display DOCUMENT FLOW for service billing request & invoice it

  • How to take cold  backup

    hi, i have database oracle 10 g rac on aix machine , my datbafiles r on SAN storage, now i want to take cold backup of my database so tell me how to do it step by step while i cannot c the datafiles thoes r on san. thxs