Complicated Table with Complicated Calculations

I am making a table within a form that is slightly complicated. I want teachers from six different zones to be able to fill in how many students travelled for how many nights and then have the total automatically calculate. The problem is that the total changes depending on the zone and how many nights away. For example for zone 2 the amount is $5 per student no matter how long they were away. However, for Zone 6 two nights away is calculated at $90 per student whereas three nights away is calculated at $100 and four nights away at $130 per night. Does anyone have a suggestion for how to set up this table? The six zones in the first column are drop down menus with the various school districts that fall into each zone allowing the teacher to choose which school district they are in and the corresponding row to fill in. Thank you.
Elaine

If you need something other than a contiguous piece of another table, say, something more like a query, you might check out the techniques I have posted for others problems in this forum. See the following messages:
Queries in Numbers
Extracting unique values from a list of values
In each case you'll find a link to an example Numbers file that uses this technique to solve the problem in the thread. Perhaps you can adapt it to your situation. If you have trouble, let me know.

Similar Messages

  • Comparing Data in col of 2 tables - with a Calculation

    There are 20 records in 2 different tables (A&B). The records pertain to periods between Jan 07 and March 09. There is a business logic that says that all the 15 records which fall between Jan 07 and Dec 08; their amount needs to be changed in Table B. While the amount for remaining 5 records that fall between Jan 09 and March 09 should remain the same. The formulae to be applied for the first 15 records is “amount/.50*0.125” and this result amount should reflect in the new table under the amount column.
    Now the task to ensure that the calculation has happened correctly from Table A for those 15 records that fall between Jan 2007 and Dec 2008 in Table B and that the amount is the same for records for period after Jan 2009. I’d only be testing that the new amount after the business logic calculation reflects in the new amount column of Table B.
    A sql statement is required for this.
    Thanks,
    Dush

    you might want to give this pseudo code a try
    update [2nd table]
       set amount = (select t.amount / .50 * 0.125
                       from (select id, rownum rn, amount
                               from [1st table]
                              where period_date between '01-JAN-07' and '31-MAR-09'
                             order by id) t
                     where  t.rn <= 15
                       and  t.id = [2nd table].id)
    where id in (select t.id
                    from (select id, rownum rn, amount
                            from [1st table]
                          where period_date between '01-JAN-07' and '31-MAR-09'
                          order by id) t
                   where  t.rn <= 15)still it's better if you can post the actual tables, columns, and some sample data

  • Can I reference a table with a calculated value?

    I have monthly tables named by Roman numerals that correlate to the each month(Jan = I, Feb=II, Mar=III) and in a cell, want to reference the current month's table by using ROMAN(MONTH(TODAY()) :: B2 because it seems I cannot use numbers for table names as a reference. Although, this throws a syntax error at me too. Anyone have a solution or an alternative? Thanks!
    I'm on iCloud Numbers, btw.

    =INDIRECT(ROMAN(MONTH(TODAY()))&"::B2")
    I don't know what problem you are having with table names that use regular digits. If your table was named "3" instead of "III", the formula would be:
    =INDIRECT(MONTH(TODAY())&"::B2")  which, on the day ofthis post, corresponds to 3::B2

  • Create new table with new calculated entries

    Hi,
    I got a little problem.
    I have a table which includes the vacations times of employees. The vacation time was periodic ,so I split them in to days. Now I want to calculate the exact days.Sometimes there are weekends included which I have to subtract. I flaged every day, that I exactly know which day is a working day and which one isn't. Is there a way that I only sum the working days without the weekends?
    Table Vacation_Times:
    Empl --- V_Start_D --- V_End_D --- Date --- Days --- D_Name
    Mr.A --- 01.05.11 --- 06.05.11 --- 01.05.11 --- 6 --- Wednesday
    Mr-A --- 01.05.11 --- 06.06.11 --- 02.05.11 --- 6 --- Thursday
    Mr.A --- 01.05.11 --- 06.05.11 --- 03.05.11 --- 6 --- Friday
    Mr-A --- 01.05.11 --- 06.06.11 --- 04.05.11 --- 6 --- Saturday
    Mr.A --- 01.05.11 --- 06.05.11 --- 05.05.11 --- 6 --- Sunday
    Mr-A --- 01.05.11 --- 06.06.11 --- 06.05.11 --- 6 --- Monday
    NEW table:
    Empl --- V_Start_D --- V_End_D --- Date --- Days --- D_Name --- Actual_Days
    Mr.A --- 01.05.11 --- 06.05.11 --- 01.05.11 --- 6 --- Wednesday --- 4
    Mr-A --- 01.05.11 --- 06.06.11 --- 02.05.11 --- 6 --- Thursday --- 4
    Mr.A --- 01.05.11 --- 06.05.11 --- 03.05.11 --- 6 --- Friday --- 4
    Mr-A --- 01.05.11 --- 06.06.11 --- 04.05.11 --- 6 --- Saturday --- 4
    Mr.A --- 01.05.11 --- 06.05.11 --- 05.05.11 --- 6 --- Sunday --- 4
    Mr-A --- 01.05.11 --- 06.06.11 --- 06.05.11 --- 6 --- Monday --- 4
    thx

    Hi,
    try
    SELECT Empl ,V_Start_D ,V_End_D ,Date ,Days ,D_Name , count(*) as Actual_Days
    FROM vacation v
    JOIN datelist d ON d.day between  V_Start_D and V_End_D and d.is_working_day='Y'
    GROUP BY Empl ,V_Start_D ,V_End_D ,Date ,Days ,D_Name Regards,
    Carsten.

  • Design Table with no of columns used for calculating the total

    Hello,
    I need to design a table/s for calculating the column values based on the operators provided. Like I have a table say
    TableID, Col1 , Col2 ,Col3 ... Total Value
    Total Value Column is calculating Col1 (operator value provided by the user) Col 2 (operator value provided by the user) Col3 etc
    Although I m thinking to create another table which stores operator values, however not sure how to calculate the total.
    like it can be COl 1 +Col2 -Col3 %Col4 etc.
    Please help.

    Can you show some data example+ desired result?
    DECLARE @t TABLE(a INT,b INT,c INT);
    INSERT @t VALUES(1,2,3),(9,8,7),(4,6,5);
    SELECT *
    ,      (   SELECT  COUNT(val) 
               FROM    (VALUES (a)
                           ,   (b)
                           ,   (c)
                       ) AS value(val)
           ) AS  CountVal 
    FROM @t;
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Best Practice loading Dimension Table with Surrogate Keys for Levels

    Hi Experts,
    how would you load an Oracle dimension table with a hierarchy of at least 5 levels with surrogate keys in each level and a unique dimension key for the dimension table.
    With OWB it is an integrated feature to use surrogate keys in every level of a hierarchy. You don't have to care about
    the parent child relation. The load process of the mapping generates the right keys and cares about the relation between the parent and child inside the dimension key.
    I tried to use one interface per Level and created a surrogate key with a native Oracle sequence.
    After that I put all the interfaces in to one big Interface with a union data set per level and added look ups for the right parent child relation.
    I think it is a bit too complicated making the interface like that.
    I will be more than happy for any suggestions? Thank you in advance!
    negib
    Edited by: nmarhoul on Jun 14, 2012 2:26 AM

    Hi,
    I do like the level keys feature of OWB - It makes aggregate tables very easy to implement if your sticking with a star schema.
    Sadly there is nothing off the shelf with the built in knowledge modules with ODI , It doesnt support creating dimension objects in the database by default but there is nothing stopping you coding up your own knowledge module (use flex fields maybe on the datastore to tag column attributes as needed)
    Your approach is what I would have done, possibly use a view (if you dont mind having it external to ODI) to make the interface simpler.

  • Fill internal table with mutliple entries for nested structure

    Dear ABAP Experts,
    I have a question related to fill internal tables with nested structures.
    I have a structure like this:
    BEGIN OF proto,
              sicht TYPE ysicht,
              version TYPE FAGLFLEXA-RVERS,
              BEGIN OF kons,
    kon TYPE YKONSEINHEIT,
              END OF kons,
              jahr TYPE CHAR04,
    END OF proto.
    Now I need to fill this structure with values (over an internal table), but how can I achieve that I save multiple datas für element "kon" für one single entry of structure "proto"?
    An example could be:
    sicht = '01'
    version = '100'
    kon = 1001 (first entry)
    kon = 1002 (second entry)
    usw... (n entry)
    jahr = '2008'
    Thanks in advance for every helpful answer.
    Regards
    Thomas

    BEGIN OF proto,
               sicht TYPE ysicht,
               version TYPE FAGLFLEXA-RVERS,
               kons TYPE STANDARD TABLE OF YKONSEINHEIT WITH NON-UNIQUE KEY TABLE_LINE,
               jahr TYPE CHAR04,
    END OF proto.
    DATA: ls_proto TYPE proto,
          lt_proto TYPE STANDARD TABLE OF proto,
          ls_kon
    ls_proto-sicht = '01'.
    ls_proto-version = '100'
    INSERT '1001' INTO TABLE ls_proto-kons.
    INSERT '1002' INTO TABLE ls_proto-kons.
    ls_proto-jahr = '2008'.
    INSERT ls_proto INTO TABLE lt_proto
    If you're going to use a more complicated inner table with several components, then you need to define a type for those components. 
    matt

  • Scrollable table with fixed column headings problem

    Dear list members,
    A while ago I asked on this forum for a way to code a
    scrollable table with fixed headings and I was kindly given the
    HTML and CSS code to do that. Using the method I was given I coded
    the following simple test case. It works under IE but under
    Netscape the column headings scroll up instead of remaining fixed.
    The code works fine in IE. Can anyone tell me what I'm doing wrong
    or if there is a workaround.
    Thanks,
    Harry

    The method you were given will only work in IE because only
    IE understands
    "expression" in CSS rules.
    I'm afraid things are going to be a little more complicated
    for you, but
    it's not impossible.
    Give this method a shot:
    http://www.imaputz.com/cssStuff/bulletVersion.html
    "harryspier" <[email protected]> wrote in
    message
    news:e53s1a$dv9$[email protected]..
    > <style>
    > div .headings {position:relative;
    > top:expression(this.offsetParent.scrollTop);}
    > </style>

  • Unable to create table with column default value with date interval

    Please help to create table with calculated date defaullt value:
    CREATE TABLE emp (
      birth_date  DATE  DEFAULT sysdate + interval '3' day NOT NULL
    or
    CREATE TABLE emp (
      some_date DATE,
      birth_date  DATE  DEFAULT some_date NOT NULL
    or
    CREATE TABLE emp (
      some_date DATE,
      birth_date  DATE  DEFAULT some_date + interval '3' day NOT NULL
    below syntax error:
    TT1001: Syntax error in SQL statement before or at: "+"

    I'm afraid this is not possible; as per the SQL Reference, TimesTen only supports 'constant expressions' for the DEFAULT clause and none of these are constant expressions.
    Chris

  • AMDP exporting table with fields from various sources

    I am writing an AMDP that has an output table a list of employees and attributes.  These attributes have various sources with various keys.  If I cannot with any practicality construct this table with a single select statement, which given my search criteria, I probably can't, must I break my output table into multiple output tables that can be created with a single select?
    I declare the structure of output table et_employees in the class as something like
          BEGIN OF ty_employee,
            emp_id(12)    TYPE c,
            emp_name(80)  TYPE c,
            org_unit(8)   TYPE c,
            region(5)     TYPE c,
            country(3)    TYPE c,
            jb_prf_as     TYPE c,
            sol_gr_as     TYPE c,
            snippet(1000) TYPE c,
            score         TYPE integer,
          END  OF ty_employee,
          tt_employes type table of ty_employee.
    As far as I can tell, I cannot do an update et_employees in the method to modify individual fields.  I can only do the select statement.
    I see my choices as
    elaborate select statement that I may or may not be able to construct (haven't thought this through but it may be doable)
    more than one output table
    create multiple local tables and then do a join on them for the output table.
    I am seeing the last one as my best option.
    To throw in an unrelated issue, AMDP procedure cannot seem to cope with a table that begins with a slash, e.g., /MRSS/D_SQP_ESTR.  The USING statement is o.k. but any access in a select or inner join gets an error.

    Hi Deborah,
    let me do some assumptions on your problem and then try to help you:
    Assumption A: You only like to query data from tables, which, I simply assume, are available in the ABAP data dictionary. In this case, I don't think there is a performance gain with AMDPs compared to OpenSQL, so just use OpenSQL and do joins on the relevant tables, leading to exaclty one resultset in the output.
    Assumption B: You need the AMDP because you have a good reason and you like to query data from tables employee_source_a and employee_source_b for your resultset. In case yes, you can e.g. use  "temporary" tables (don't declare them explicitly), e.g. use the construct like:
    lt_employee_source_a =  select ...from employee_source_a ...;
    lt_employee_source_b = select ... from employee _source_b...;
    et_employee = select ... from :lt_employee_source_a ... (inner/left outer) join lt_employee_source_b on...;
    Or you could use the CE_JOIN function if that suits your SQLScript development better.
    To elaborate a query statement for et_employee for without the lt_xxx tables is hard to say from your question - it should be posible if there are no nasty aggregations/calculations which prevent it :-).
    There's no need to use two resultsets in the output in case that's not what you need in the application.
    The option to have several resultsets is rather a feature of DB Procedures, which allow for several resultsets while a view/OpenSQL query can only give you one resultset.
    Conclusion: You answered your question yourself, the last option seems to be the best option :-).
    Concerning the "slash issue": Guessing around I'd propose to use quote the table name like "/MRSS/D_SQP_ESTR"... but just a guess. Could you please post the error message or open a second discussion on the issue?
    Cheers,
      Jasmin

  • Group By with nested calculations

    Hi Gurus,
    I have an Acct table with the follwig fields
    Bal_date
    Bal_amt
    Acc_No
    I want to calculate the average balance based on this formula:
    Average=Amount * no_of_days/no_of_days_in_month
    Where amount= Bal_amt (i.e. daily balance)
    no_of_days = number of days the account has been holding that amount
    Calculation for average negatives is done and reported separately
    For instance if account 123456 has the following balance history:
    01-JAN-09 to 08-JAN-09 = 1000
    09-JAN-09 to 21-JAN-09 = -2000
    22-JAN-09 to 31-JAN-09 = 3000
    For Positive_Average = (1000*8/31)+(3000*10/31)
    =258.06 + 967.74 = 1225.81
    Calculation for negative:
         (-2000*13/31) = -838.71
    I have used a case to separate positive balances from negative balances
    I want the output like this
    ACC_NO          AVG_AMT          POS_NEG_MARKER
    123456          1225.81          1
    123456          838.71          0
    The negative balance is reported in its absolute form so I have a marker that checks if bal was -ve then 0 else 1
    My Approach:
    select Acc_No,
    sum((AVG(Bal_amt)*(((max(Bal_date)-min(bal_date))/to_char(last_day(ab_date),'DD'))))),
    (case when Bal_amt < 0 then '0' else '1' end) as POS_NEG_MARKER
    from ACCT
    Where Bal_date between '01-JAN-09' and '31-JAN-09'
    Group by Acc_No, (case when Bal_amt < 0 then '0' else '1' )
    This definitely thows the ORA-00937: not a single-group group function and if I play with the select elements I get ORA-00979: not a GROUP BY expression
    I am sure there is a better way to handle this requirement. Please assist with ideas and corrections where necessary.
    Thanx in advance

    Your welcome. How do you want the query to behave when you have a zero balance? An extra record?
    What the sign () does is return a 1, 0, -1 depending on whether the value is positive, zero or negative.
    SQL> select val, sign (val)
      2    from (select 100 val from dual
      3          union all
      4          select 0 from dual
      5          union all
      6          select -123 from dual
      7  )
      8  /
           VAL  SIGN(VAL)
           100          1
             0          0
          -123         -1you could do something like this:
    SQL> select acc_no
      2       , round (abs (sum (case when ind = 1
      3              then pos_amt
      4              when ind = -1
      5              then neg_amt
      6              else 0
      7              end * no_of_days/days_in_month
      8             )), 2) avg_amt
      9       , greatest (ind, 0) pos_neg_marker
    10    from (
    11  select decode (sign (bal_amt), 1, bal_amt) pos_amt
    12       , decode (sign (bal_amt), -1, bal_amt) neg_amt
    13       , decode (sign (bal_amt), 0, bal_amt) zero_amt
    14       , sign (bal_amt) ind
    15       , acc_no
    16       , lead (bal_date, 1, last_day (bal_date))
    17                  over (partition by acc_no
    18                            order by bal_date
    19                       ) - bal_date no_of_days
    20       , last_day (bal_date) - trunc (bal_date, 'MM') + 1 days_in_month
    21    from test
    22  )
    23   group by acc_no, ind
    24  /
        ACC_NO    AVG_AMT POS_NEG_MARKER
             1          0              0
             1    1129.03              1
             1      387.1              0

  • Nested Aggregates in Report Table with Groupings

    I've come across the well known problem of needing to nest aggregates in a report which has a table with groupings. I have come up against a bit of a problem with the suggested workaround posted in severla threads of using custom code and variables as a way round this.
    Basically I have several groupings in my report, the inner most of which  has a field which needs to return the MAX value of the rows contained within it.  Then depending on what this value is i need a count of these values that match a particular criteria eg if it ends in a "T" count it if it doesn't then don't.
    I have a businees area group surrounding that inner grouping and i need to sum to the rows that match that particular criteria, but i can't have a sum of the values because they are calculated using the MAX aggreagte.
    The partial way round it i have found is to use some custom code and create a variable that i can increment each time one of the rows matches the criteria i want
    Code Snippet
    Public Shared sum_monday As Integer = 0
    Public Shared Function SumMon(ByVal Value As Integer)
        sum_monday = sum_monday + Value
    End Function
    i use the code below to increment the variable
    Code Snippet=Code.SumMon(IIF(right(MAX(Fields!Monday.Value),1)="T",1,0))
    and in the group footer i use the code below to display the total
    Code Snippet=code.sum_monday
    the problem i have is that i can't work out how to reset the count for each grouping because at the minute its effectively a running total.  I need to have a sum of the particular group rather than a running sum including all the previous groupings.
    Apologies if some of the above isn't clear , i'm a bit useless at writing clear explanations
    Any help much appreciated.
     

    Hi Rob (catz)
    Thanks for your suggestion, i've come back to this report having left it for a while and i've just tried your suggestion but the problem i have is that i can't get the total to display in the outer group where i need it. The total appears in the next groups header instead.
    Group 1 Header   =Code.SumMon(0,0)     =code.sum_Monday
    Group 2 Header   =Code.SumMon(Fields!ACTUAL_MILES.Value,1)   =code.sum_Monday
    Group 1 Footer    =code.sum_Monday
    will result in
    Group 1 Header   0
    Group 2              21   21
                              13   34
                              10   44
                              15   59
    Group 1 Footer    0
    Group 1 Header   59
    Group 2              10   10
                              12   22
                              13   35
                              14   49
    Group 1 Footer    59
    Any suggestions welcome

  • How to match columns of two tables with

    Hello:
    I've two tables like below:
    Table1:(Base Table)
    Country|Prefix|Prefix_Length
    CountryA|001|3
    CountryB|0012|4
    CountryC|00443|5
    CountryD|0091|4
    Table2:(Detail Table)
    Population|Area|Prefix
    500|AreaA|0015921
    1000|AreaB|00122
    400|AreaC|00443743
    300|AreaD|0091333
    100|AreaA|001
    I need to match these two tables with prefix column (which length is not fixed in both tables: but it starts with 00 in both tables). Two different countries prefix can be similar up to a certain length. So, Prefix_Length can be used to determine (exactly) how long should be taken to search from Table2.
    Output:
    Country|Prefix|Area|Population
    CountryA|001|AreaA|600
    CountryB|0012|AreaB|1000
    CountryC|00443|AreaC|400
    CountryD|0091|AreaD|300
    Please help me with your valuable feedback.
    -Tanvir

    You have to explain how CountryA population is calculated:
    with base_table as (
                        select 'CountryA' country,'001' prefix,3 prefix_length from dual union all
                        select 'CountryB','0012',4 from dual union all
                        select 'CountryC','00443',5 from dual union all
                        select 'CountryD','0091',4 from dual
       detail_table as (
                        select 500 population,'AreaA' area,'0015921' prefix from dual union all
                        select 1000,'AreaB','00122' from dual union all
                        select 400,'AreaC','00443743' from dual union all
                        select 300,'AreaD','0091333' from dual union all
                        select 100,'AreaA','001' from dual
    -- end of on-the-fly data sample
    select  country,
            b.prefix,
            area,
            population
      from  base_table b,
            detail_table d
      where b.prefix = substr(d.prefix,1,prefix_length)
    COUNTRY  PREFI AREA  POPULATION
    CountryA 001   AreaA        500
    CountryA 001   AreaB       1000
    CountryA 001   AreaA        100
    CountryB 0012  AreaB       1000
    CountryC 00443 AreaC        400
    CountryD 0091  AreaD        300
    6 rows selected.
    SQL> SY.

  • Advanced Table with Grand Total

    I have an advanced table created at the design time with property "Records Displayed" is set to 10. That means, i can able to see 10 records at a time. i have click on Next "Next 10" link to see the next 10 records. i have created a footer with Total. it is showing the sum of the column for the 10 records at a time. Every time i click on "Next 10" , it shows the next 10 records and give me total for current 10 records.
    My requirement is show the grand total in the footer. is there any simple setup to show the grand total instead of current page total ? Can i replace the current page total with grand total ? if so, how can i get the handler for the total ?

    We have not implemented this functionality but OAF Dev guide [11.5.10.2] has this info.
    Control Total Value Generation
    To bypass OA Framework's mechanism to control the value generation for a table column footer so you can
    provide your own value such as a percentage, set the
    oracle.apps.fnd.framework.webui.OAWebBeanConstants TABULAR_FUNCTION_VALUE_ATTR on the
    appropriate table column. This overrides OA Framework's internal behavior of footer value generation. Like all
    web bean attributes, you can data bound this attribute if required.
    Sample usage:
    OAAdvancedTableBean advtableBean = ...;
    OAMessageStyledTextBean salaryBean = advtableBean.findChildRecursive(...);
    String formattedTotal = ...;
    *// compute the total*
    salaryBean.setAttributeValue(TABULAR_FUNCTION_VALUE_ATTR,formattedTotal);
    or:
    salaryBean.setAttributeValue(TABULAR_FUNCTION_VALUE_ATTR,
    new OADataBoundValueViewObject(...));
    Grand Totals
    Declarative or programmatic support for Grand Totals is currently not available in advanced tables. To
    implement grand totals, you must build your own layout below the advanced table in accordance with the
    Oracle Browser Look-and-Feel (BLAF) Guidelines: Tables: Grand Totals [OTN version]. Use the
    messageComponentLayout region style to build this layout. In addition, you must programmatically provide the
    values for the grand total fields. Since these fields are like any other form fields, you can first calculate the
    grand total value in your controller code by looping through the entire view instance row range, and then call
    setText() for the grand total field to set it with the calculated grand total value.
    Hope this helps.
    --- Thanks

  • What are the advantages of using an internal table with workarea

    Hi,
    can anyone tell me
    What are the advantages of using an internal table with workarea
    over an internal table with header line?
    thnks in adv
    regards
    nagi

    HI,
    Internal tables are a standard data type object which exists only during the runtime of the program. They are used to perform table calculations on subsets of database tables and for re-organising the contents of database tables according to users need.
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb35de358411d1829f0000e829fbfe/content.htm
    <b>Difference between Work Area and Header Line</b>
    While adding or retrieving records to / from internal table we have to keep the record temporarily.
    The area where this record is kept is called as work area for the internal table. The area must have the same structure as that of internal table. An internal table consists of a body and an optional header line.
    Header line is a implicit work area for the internal table. It depends on how the internal table is declared that the itab will have the header line or not.
    e.g.
    data: begin of itab occurs 10,
    ab type c,
    cd type i,
    end of itab. " this table will have the header line.
    data: wa_itab like itab. " explicit work area for itab
    data: itab1 like itab occurs 10. " table is without header line.
    The header line is a field string with the same structure as a row of the body, but it can only hold a single row.
    It is a buffer used to hold each record before it is added or each record as it is retrieved from the internal table. It is the default work area for the internal table
    1) The difference between
    whih header line and with out heater line of internal table.
    ex:-
    a) Data : itab like mara occurs 0 with header line.
    b) Data: itab like mara occurs 0.
    -While adding or retrieving records to / from internal table we have to keep the record temporarily.
    -The area where this record is kept is called as work area for the internal table.
    -The area must have the same structure as that of internal table. An internal table consists of a body and an optional header line.
    -Header line is a implicit work area for the internal table. It depends on how the internal table is declared that the itab will have the header line or not.
    a) Data : itab like mara occurs 0 with header line.
    table is with header line
    b) Data: itab like mara occurs 0.
    table is without header line
    2)work area / field string and internal table
    which one is prefarable for good performance any why ?
    -The header line is a field string with the same structure as a row of the body, but it can only hold a single row , whereas internal table can have more than one record.
    In short u can define a workarea of an internal table which means that area must have the same structure as that of internal table and can have one record only.
    Example code:
    data: begin of itab occurs 10,
    ab type c,
    cd type i,
    end of itab. " this table will have the header line.
    data: wa_itab like itab. " explicit work area for itab
    data: itab1 like itab occurs 10. " table is without header line.
    Regards,
    Padmam.

  • Generate table with dimensions of BPC etc in BW

    Hi All,
    Is it possible to generate a big table in BW which contains all dimensions and the dimension members of the different dimensions and have this table per application set in BPC.
    I am looking for a table with column headers like this:
    AppSet - Application - Dimension - Dimension Member
    Note: When I look in the backend of BPC 7.5 NW we are using over here; so when I look in BW I can see there are different tables...tables for the applications per AppSet, tables containing the dimension for the different applications and tables for the dimension members. What I'd like to do is combine all these in a big file. Is it possible to generate a master data list in BW?
    Thank you in advance for you attention.

    Hi,
    Thats the beauty of [StarSchema|http://help.sap.com/saphelp_nw70ehp1/helpdata/en/4c/89dc37c7f2d67ae10000009b38f889/content.htm].
    The star schema is the simplest data warehouse schema. It is called a star schema because its diagram resembles a star: the center (one or more fact tables) is directly joined to its points - the dimension tables.
    A star schema is characterized by one or more very large fact tables that contain the primary information in the data warehouse and a number of much smaller dimension tables (or lookup tables), each of which contains information about the entries for a particular attribute in the fact table.
    A star query is a join between a fact table and a number of lookup tables. Each lookup table is joined to the fact table using a primary-key to foreign-key join, but the lookup tables are not joined to each other.
    A typical fact table contains keys and measures. For example, a simple fact table might contain the measure Sales, and keys Time, Product, and Market. In this case, there would be corresponding dimension tables for Time, Product, and Market. The Product dimension table, for example, would typically contain information about each product entry that appears in the fact table. A measure is typically a numeric or character column, and can be taken from a specified column from the fact table or calculated from two or more columns in one or a few fact tables.
    A star join is a primary-key to foreign-key join between a fact table and dimension tables. The fact table normally has a primary-key composed of a few columns.
    The main advantages of star schemas are that they:
    u2022Provide a direct and intuitive mapping between business entities analyzed by end users and the schema design.
    u2022Provide highly optimized performance for typical data warehouse queries.
    hope you understand the concept behind storing data in different table instead in a single table.
    Thanks,
    Raju

Maybe you are looking for