% of column based on one of the lines in the previous column

Hello.

I need to build the report that follows in the responses:
Column 1 is sales and expenses.
Column 2 is all lines in column 1 divided by the first row of the column 1 (costs divided by sales) * 100

----------------Value---%
Sales... 1000 100
Purchase-400 - 40
Staff costs. -100-10
Advertising - 50-5
Result... 450 45

My problem accessing the sales column line 1 och, use it in a formula in column 2.
Someone knows a way to solve this in the answers?

Oracle BI Server is 10.1.3
Joel

Published by: joel_s on August 19, 2011 07:35

Published by: joel_s on August 19, 2011 07:36

Published by: joel_s on August 19, 2011 07:36

Published by: joel_s on August 19, 2011 07:37

Hi Joel,

If you want it in % of the total, then the formula will be col1_measure/sum(case when dimension = sales then col1_measure else 0 end).

If you want a percentage of a group (for example account_id) then the formula will be col1_measure/sum(case when dimension = sales then col1_measure else 0 end by account_id).

Kind regards

Robert

Published by: Robert Tooker August 19, 2011 08:37

Published by: Robert Tooker August 19, 2011 08:40

Tags: Business Intelligence

Similar Questions

  • Need to sort the instances of an entity or assign a rank to each of them based on one of the attributes.

    I need to assign a rank to each instance of an entity called 'Campaign', based on one of the attributes of the entity of campaign called "recipes". So, essentially, that we need to check the current instance with all other insatnces of campaign, assign the relative to the current row.

    Emergency assistance would be much appreciated. Thanks in advance.

    A common method is to create a relationship of self-esteem for the campaign.  Call it something like "lower income".

    Rule 1 creates relationships for campaigns that have a lower income:

    Campaign (target) is a member of the decline in revenues, if

    Revenue from target< compaign="">

    2 account rule the number of relationships to create a ranking (and puts the number in a variable called 'Campaign order number'):

    Campaign sequence number = the number of the decline in revenues

    The 'Order of campaign number' attribute in each entity now has your order in it.

  • How to query the master block based on one of the values of the detail block

    Hello
    In the form of version 6i, I have a field in data block which is not defined as a database element. I use this field to store a block of retail value. If I want to ask the form using this field (which represents one of the values of retail block), how should I do this? Pointers?

    TIA,

    Yes, as Ammad10786 says, the ID's I mentioned are just placeholders for your real values. And done MASTERBLOCKID refers to columns in the masterblock which is the primary key or the join condition to the retail block.

  • How to join two tables if you transpose the rows, columns and rows in one of the table

    Hi guys,.

    can someone help me please in the write request

    I have two tables

    Agents and Agent phones but in the agent phones table for the id of an agent it displays 4 rows because one of the column there types of different phones (office, mobile, home, fax)

    So instead of display 4 rows, I used max(case...) to convert rows to columns

    now how to reach it with another table

    Requirement:

    Database: 11.2.0.2.0

    create the table AGENT_PHONE

    (

    agent_id NUMBER (20) not null,

    agent_type_code VARCHAR2 (10) not null,

    agent_type_prefix VARCHAR2 (10) not null,

    Phone_Number VARCHAR2 (16) not null,

    phone_type_code VARCHAR2 (10) not null

    )

    CREATE TABLEAGENTS

    (

    agent_id NUMBER (20) not null,

    agent_type_code VARCHAR2 (10) not null,

    agent_type_prefix VARCHAR2 (10) not null,

    NAME VARCHAR2 (40) NOT NULL

    )

    INSERT INTO AGENT_PHONE(AGENT_ID,AGENT_TYPE_CODE,AGENT_TYPE_PREFIX,PHONE_NUMBER,PHONE_TYPE_CODE)

    VALUES (29709, ARE ', 'OFFICE', '4805551436', 'CELL');

    INSERT INTO AGENT_PHONE(AGENT_ID,AGENT_TYPE_CODE,AGENT_TYPE_PREFIX,PHONE_NUMBER,PHONE_TYPE_CODE)

    VALUES (29709, ARE ', 'OFFICE', '1111111111', 'PHONE');

    INSERT INTO AGENT_PHONE(AGENT_ID,AGENT_TYPE_CODE,AGENT_TYPE_PREFIX,PHONE_NUMBER,PHONE_TYPE_CODE)

    VALUES (29709, ARE ', 'OFFICE', '2223334444',' OFF');

    INSERT INTO AGENT_PHONE(AGENT_ID,AGENT_TYPE_CODE,AGENT_TYPE_PREFIX,PHONE_NUMBER,PHONE_TYPE_CODE)

    VALUES (29709, ARE ', 'OFFICE', '5556667788', 'FAX');

    INSERT INTO VALUES AGENTS

    (29709, ARE ', 'OFFICE', 'FLY');

    INSERT INTO VALUES AGENTS

    (1234, ARE ', 'OFFICE', 'MIKE');

    SELECT * FROM AGENT_PHONES

    AGENT_IDAGENT_TYPE_CODEAGENT_TYPE_PREFIXPHONE_NUMBERPHONE_TYPE_CODE

    ---------------------------------------------------------------------------------------------

    29709REOFFICE4805551436CELL
    29709REOFFICE1111111111PHONE
    29709REOFFICE2223334444OFF
    29709REOFFICE5556667788

    FAX

    SELECT * AGENTS

    AGENT_IDAGENT_TYPE_CODEAGENT_TYPE_PREFIX

    NAME

    29709REOFFICEROB
    1234REOFFICE

    MIKE

    This is so the data we have in both table

    Now, I transposed rows to columns in the table of agent phones so I used the following query

    SELECT AP. AGENT_ID,. AGENT_TYPE_CODE,. AGENT_TYPE_PREFIX.

    MAX (CASE WHEN AP. PHONE_TYPE_CODE = 'CELL' THEN AP. PHONE_NUMBER END) AS CELL.

    MAX (CASE WHEN AP. PHONE_TYPE_CODE = 'OFF' THEN AP PHONE_NUMBER END) AS TURNED OFF.

    MAX (CASE WHEN AP. PHONE_TYPE_CODE = 'FAX' THEN AP. PHONE_NUMBER END) LIKE FAX,.

    MAX (CASE WHEN PHONE_TYPE_CODE = 'PHONE'. THEN AP PHONE_NUMBER END) AS PHONE

    AGENT_PHONE AP

    WHERE AP. AGENT_ID = 29709

    GROUP OF AP. AGENT_ID, AP. AGENT_TYPE_CODE, AP. AGENT_TYPE_PREFIX.

    AGENT_IDAGENT_TYPE_CODEAGENT_TYPE_PREFIXCELLOFFFAXPHONE
    129709REOFFICE4805551436222333444455566677881111111111

    My question is how this to join the agents table so that my output should be like this...

    I want to display all the results in the table of the Agent, even if they are not in the table of agent phones. As you can see there are other agent id 1234 is also populated

    AGENT_IDAGENT_TYPE_CODEAGENT_TYPE_PREFIXNAMEAGENT_IDAGENT_TYPE_CODEAGENT_TYPE_PREFIXCELLPHONEOFFFAX

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    29709REOFFICEROB29709REOFFICE4805551436111111111122233344445556667788
    1234REOFFICEMIKE

    Currently, I run this query and I get the output as below

    SELECT *.

    AGENTS HAS

    LEFT OUTER JOIN AGENT_PHONE AP

    ON A.AGENT_ID = AP. AGENT_ID

    AND A.AGENT_TYPE_CODE = AGENT_TYPE_CODE.

    AND A.AGENT_TYPE_PREFIX = AGENT_TYPE_PREFIX.

    AGENT_IDAGENT_TYPE_CODEAGENT_TYPE_PREFIXNAMEAGENT_IDAGENT_TYPE_CODEAGENT_TYPE_PREFIXPHONE_NUMBERPHONE_TYPE_CODE
    129709REOFFICEROB29709REOFFICE4805551436CELL
    229709REOFFICEROB29709REOFFICE1111111111PHONE
    329709REOFFICEROB29709REOFFICE2223334444OFF
    429709REOFFICEROB29709REOFFICE5556667788FAX
    51234REOFFICEMIKE

    I want id 29709 agent in a line with 1234 agent also id to display

    You can rotate your phone number of agent in columns

    Select *.

    of AGENT_PHONE

    pivot)

    min (PHONE_NUMBER)

    for PHONE_TYPE_CODE in ('CELL' as a 'CELL', 'PHONE' like 'PHONE', 'OFF' in the 'OFF', 'FAX' as 'FAX')

    )

    AGENT_ID AGENT_TYPE_CODE AGENT_TYPE_PREFIX CELL PHONE OFF FAX
    29709 RE OFFICE 4805551436 1111111111 2223334444 5556667788

    Then you can join to view inline or CTE

    with AGENT_PHONE_PIVOT like)

    Select *.

    of AGENT_PHONE

    pivot)

    min (PHONE_NUMBER)

    for PHONE_TYPE_CODE in ('CELL' as a 'CELL', 'PHONE' like 'PHONE', 'OFF' in the 'OFF', 'FAX' as 'FAX')

    )

    )

    SELECT *.

    AGENTS HAS

    LEFT OUTER JOIN AGENT_PHONE_PIVOT AP

    ON A.AGENT_ID = AP. AGENT_ID

    AND A.AGENT_TYPE_CODE = AGENT_TYPE_CODE.

    AND A.AGENT_TYPE_PREFIX = AGENT_TYPE_PREFIX.

    AGENT_ID AGENT_TYPE_CODE AGENT_TYPE_PREFIX NAME AGENT_ID AGENT_TYPE_CODE AGENT_TYPE_PREFIX CELL PHONE OFF FAX
    29709 RE OFFICE ROB 29709 RE OFFICE 4805551436 1111111111 2223334444 5556667788
    1234 RE OFFICE MIKE - - - - - - -

    Is that what you're looking for?

  • How to upgrade one of the two lines in double

    I use 11.2.0.3.0

    Is it possible using a CASE statement to find the rows that are double and one of the two lines was updated so that they are all unique?

    What I get is something like this

    Col1 Col2 COL3 COL4 Col5

    1

    1111
    11111
    22222
    22222
    33333
    33333
    44444
    44444
    55555
    55555

    I would change one of the columns in the two lines that makes the unique lines like this

    Col1 Col2 COL3 COL4 Col5
    11111
    12111
    23222
    24222
    35333
    36333
    47444
    48444
    59555
    50555

    Hello

    I don't see how a CASE expression would contribute to this problem.

    In your original message, you said you wanted to update the table, in other words, to permanently change some of the values stored in the table.

    In response, #2, looks like you want to change what is in the table, you just want to replace by new values for col2 in this query, without permanently changing table.  You can do this by using the ROW_NUMBER right in the query, when you thought using a CASE expression.

  • How to give more relevance to one of the column in multi-column data store

    Hi gurus,

    When using multi-column datastore necessary to give more importance to one of the other column. How can we achieve the same?
    SQL > create table test_sh4 (text1, text2 clob clob);

    Table created.

    SQL > alter table test_sh4 Add (Text3 clob);

    Modified table.

    SQL > start
    2 ctx_ddl.create_preference ('nd_mcd', 'multi_column_datastore');
    3 ctx_ddl.set_attribute
    4 ("nd_mcd",
    5 "columns."
    6 ' replace (Text1, "", "") nd, Text1 text1, replace (Text1, "", "') nd, Text1 text1');
    7 ctx_ddl.set_attribute ('nd_mcd', 'separator', 'new line');
    8 ctx_ddl.create_preference ('test_lex1', 'basic_lexer');
    9 ctx_ddl.set_attribute ('test_lex1', 'spaces', ' /--------|-_ + "");
    10 end;
    11.

    PL/SQL procedure successfully completed.

    SQL > create index IX_test_sh4 on test_sh4 (Text3)
    indexType is ctxsys.context
    parameters
    ("nd_mcd of the data store
    lexer test_lex1')
    / 2 3 4 5 6

    Index created.
    Here, while querying how can I give more relevant for the text1 Text2 column as column?

    I gave an example below. I added some data to your example. You had tags and columns duplicated in your multi_column_datastore, so I fixed it those. I removed the newline delimiter and added a section with sections of field group and add this section to the index settings group. Allows you to search in each section of field and apply different fats. You can apply weights by multiplying by a value entre.1 and 10 or several times multiplier to reduce or increase the score for a particular section.

    SCOTT@orcl_11gR2> -- table structure you provided:
    SCOTT@orcl_11gR2> create table test_sh4 (text1 clob,text2 clob);
    
    Table created.
    
    SCOTT@orcl_11gR2> alter table test_sh4 add (text3 clob);
    
    Table altered.
    
    SCOTT@orcl_11gR2> -- added data:
    SCOTT@orcl_11gR2> insert all
      2  into test_sh4 (text1, text2, text3)
      3    values ('testword', 'word2', 'word3')
      4  into test_sh4 (text1, text2, text3)
      5    values ('word4', 'testword', 'word5')
      6  into test_sh4 (text1, text2, text3)
      7    values ('test word', 'word2', 'word3')
      8  into test_sh4 (text1, text2, text3)
      9    values ('word4', 'test word', 'word5')
     10  select * from dual
     11  /
    
    4 rows created.
    
    SCOTT@orcl_11gR2> -- fixed duplicate column names and tags and
    SCOTT@orcl_11gR2> -- removed newline delimiter and
    SCOTT@orcl_11gR2> -- added section group with field sections:
    SCOTT@orcl_11gR2> begin
      2    ctx_ddl.create_preference ('nd_mcd', 'multi_column_datastore');
      3    ctx_ddl.set_attribute
      4        ('nd_mcd',
      5         'columns',
      6         'replace (text1, '' '', '''') nd1,
      7          text1 text1,
      8          replace (text2, '' '', '''') nd2,
      9          text2 text2');
     10    ctx_ddl.create_preference ('test_lex1', 'basic_lexer');
     11    ctx_ddl.set_attribute ('test_lex1', 'whitespace', '/\|-_+');
     12    ctx_ddl.create_section_group ('test_sg', 'basic_section_group');
     13    ctx_ddl.add_field_section ('test_sg', 'text1', 'text1', true);
     14    ctx_ddl.add_field_section ('test_sg', 'nd1', 'nd1', true);
     15    ctx_ddl.add_field_section ('test_sg', 'text2', 'text2', true);
     16    ctx_ddl.add_field_section ('test_sg', 'nd2', 'nd2', true);
     17  end;
     18  /
    
    PL/SQL procedure successfully completed.
    
    SCOTT@orcl_11gR2> -- added section group to index:
    SCOTT@orcl_11gR2> create index IX_test_sh4 on test_sh4 (text3)
      2  indextype is ctxsys.context
      3  parameters
      4    ('datastore     nd_mcd
      5        lexer          test_lex1
      6        section group     test_sg')
      7  /
    
    Index created.
    
    SCOTT@orcl_11gR2> column text1 format a10
    SCOTT@orcl_11gR2> column text2 format a10
    SCOTT@orcl_11gR2> column text3 format a10
    SCOTT@orcl_11gR2> -- without weighting:
    SCOTT@orcl_11gR2> select score (1), t.* from test_sh4 t
      2  where  contains
      3             (t.text3,
      4              'testword',
      5              1) > 0
      6  /
    
      SCORE(1) TEXT1      TEXT2      TEXT3
    ---------- ---------- ---------- ----------
             6 testword   word2      word3
             6 word4      testword   word5
             3 test word  word2      word3
             3 word4      test word  word5
    
    4 rows selected.
    
    SCOTT@orcl_11gR2> -- with weighting:
    SCOTT@orcl_11gR2> select score (1), t.* from test_sh4 t
      2  where  contains
      3             (t.text3,
      4              '(testword within text1) * 10 or
      5            (testword within nd1)     *  5 or
      6            (testword within text2) * .5 or
      7            (testword within nd2)     * .1',
      8              1) > 0
      9  order  by score (1) desc
     10  /
    
      SCORE(1) TEXT1      TEXT2      TEXT3
    ---------- ---------- ---------- ----------
            48 testword   word2      word3
            20 test word  word2      word3
             2 word4      testword   word5
             1 word4      test word  word5
    
    4 rows selected.
    
  • Find all the lines from the previous column value difference lines

    I have an interesting requirement. There is a DATE column and a user in one table and I have to find all the lines for all users for which the previous and the current line has lagged in lets say more than 30 minutes. The rows are already sorted in time.

    For example in the following table, we need to ID 4 and 6 for user 1.


    Date of the user ID
    1 1 today 1 hr. 0 Min. 0 sec.
    today 2 1 1 hour 1 min 0 sec
    Today 3 1 1 hour 29 min 0 s
    * 4-1 today 1 hour 59 min 3s *.
    5 1 today 2 hours 10 min 2 sec
    * 6 1 today 2 hours 50 min 7 s *.

    Published by: user733179 on March 5, 2009 12:00

    Hello

    To obtain a separate calculation for each value of the usr, start the analytical clause with "BY usr PARTITION":

    WITH     got_dif     AS
    (
         SELECT     id,     dt,     usr
         ,     (dt - LAG (dt)
                    OVER ( PARTITION BY  usr
                              ORDER BY          dt
                            )
              )             -- difference in days
                  * 24 * 60  AS minutes_dif
         FROM     table_x
    --     WHERE     ...     -- if needed
    )
    SELECT     id,     dt,     usr
    FROM     got_dif
    WHERE     minutes_dif     > 30
    ;
    
  • 2050 all-in-one is blurred lines and feed new pages in the middle of print job

    Printer HP 2050 all-in-one

    Windows 7 Prof 64

    No recent changes. Printer worked for about 1 year.

    Problem:

    Some lines are unusually short and the letters are crumpled.  Printer is often a page feed for no apparent reason in the middle of a paragraph.  At first, I thought that the rollers of the printer have been problems grabbing the paper, but then I realized that it reproduces errors exactly in the same place for a given document.  Document one might offend lines 4 and 20 and line feed line 40 whenever I print that document B could online on line 4 and scunch line 35 every time I print it.

    I look like a problem of software for sure.  I uninstall the software and reinstall with a new download.  Let me know what happens.

  • APEX 4.2.5: How reference a column element in the previous line?

    Good afternoon

    I have the following problem:

    I have an IR on a table that contains the values of daily clock of energy (gas and electricity).

    Now, I want to set up a calculated column that contains the daily consumption.
    Power_actual_row - power_previous line.

    Is this possible and if yes how can I achieve this?

    Kind regards.

    Wilfried

    Baerenmarke wrote:

    I have the following problem:

    I have an IR on a table that contains the values of daily consumption of energy (gas & electricity) clock.

    Now, I want to set up a calculated column that contains the daily consumption.
    Power_actual_row - power_previous line.

    Is this possible and if yes how can I achieve this?

    Add a POWER_PREVIOUS column to your report query using the analytical function LAG to access the value of the POWER of the previous row. Use the ORDER byclause in the function to determine the order of the lines. The calculation of the IR then simply uses the POWER and POWER_PREVIOUS values for the same line.

  • I created a PDF file in InDesign and the text boxes has a white line around one of the text boxes?   There is no color indicated on the sketch? How can I fix it

    I created a PDF file in InDesign and the text boxes has a white line around one of the text boxes?

    There is no color indicated on the sketch? How can I fix it

    Double post.

    Locked

  • A pen as a tool with a diagonal line through it appeared that I cannot get rid where work around. He is NOT one of the tools on the standard toolbar. Help please

    A pen as a tool with a diagonal line through it appeared that I cannot get rid where work around. He is NOT one of the tools on the standard toolbar. Help please

    Means generally that you're trying to work on a layer locked.

  • When I try to edit a room photo in photoshop elements 12, I'm not able to use the slider or one of the drop down menus. All I have is a black circle with a line through it.

    When I try to edit a room photo in photoshop elements 12, I'm not able to use the slider or one of the drop down menus. All I have is a black circle with a line through it.

    Most likely, the images are 16-bit/channel.

    Go to Image > Mode and click on 8-bit/channel and see if that solves the problem.

  • How can I align two different text lines in the same table in two different directions (centered on one and one on the left)?

    Hello

    I want to focus the two different text lines that are in the same table, but one on the Center and the other on the left. I put a < span > tag in the hope that he was overwhelmed the family of police .bottomsel table class properties and the. Police-family Cig84 and color but the text-align only: they are both on the left.

    Here is my source and CSS codes:

    Source:

    < table width = "600" border = "0" >

    < b >

    < class td = "bottomref" > < p > < span class = "bottomsel" > | < a href = "index.html" target = "_self" > Main < /a > | " < a href = "about.html" target = "_self" > on < /a > | " < a href = "clients.html" target = "_self" > customers < /a > | " < a href = "contact.html" target = "_self" > Contact < /a > | " </span > < br / >

    < span class = 'credits' > credits: < span class = "Cig84" > Cig84 </span > < / span > < /p > < table >

    < /tr >

    < /table >

    CSS:

    {.bottomsel}

    text-align: center;

    do-family: Georgia, "Times New Roman", Times, serif;

    }

    {.credits}

    text-align: left;

    }

    . {Cig84}

    Color: #F00;

    do-family: "Comic Sans MS", cursive;

    }

    Use tags to paragraph with CSS classes.

    CSS:

    . Center {text-align: center}

    .the {text-align: left}

    HTML:

    This text is centered

    This text is left-aligned

    Nancy O.

  • How can I get a continuous square wave to the duty cycle of 50% on one of the analog lines?

    Hello, I had recently just buy an analog card to our system, and I'm still very new to labview.  I have the PXI-6723, and I need to produce a wave square of 0 to 5 volts continuously.  I used the square wave generator and used a writing funtion to one of the ports.  This produces a momentary wave and that's it.  I tried to put some time a loop around the square and watched as wave function.  It produces constantly plots, but the write function always has the same thing.  If I am the writing inside the loop function I get errors.   Any help would be greatly appreciated.  Thank you, Fred

    Another function to generate the square wave, to change the generation of waveform buffer (the Subvi used) and to connect a control at the entrance to offset from the base generator functions. or simply use the add function on the output waveform.

  • Conditional formula using one of the two operations

    How to create a conditional formula where the results are a choice between two formulas based on the cell to two cells has a value greater than 0?  More specifically, I have to add value in a cell (in the column headed "added amount") to a cell in a column of the running totals if the value of this cell is greater than 0, or subtract the value of a different cell (in the column headed "amount withdrawn") in the same line, if the value of this cell is greater than 0.  Only one of the two will have a value in a given line.

    Hi George,.

    If you only have a value in a column, then you have even a logical formula. You can do this:

    A2 is an input value, it could be called "balance forward".

    A3 is filled down.

    Quinn

Maybe you are looking for