Aggregate using Lookup function

Is there any way to get a sum or average of data from a dataset using a Lookup function?
I have daily currency data, and want to use a lookup function to get monthly averages - at this stage, the lookup function will only return the data for the first entry of the month.
Thanks

Hi MIDASuer,
Per my understanding that you want to get the sum or monthly average value based on the daily currency data, right?
I have tested on my local environment and I assumed that you have an date/time type field in the table, if so, we can get the month value based on the daily date and then create row group based on the month, finally we can use the avg or sum function
to get the monthly average values.
Detail information below for your reference:
We can modify the query in the dataset to get the month value from the date:
SELECT   Amount, Date, DATEPART(month, Date) AS Month
FROM      TableName
Add an row gorup of the month(Month)
Use expression below to get the average value of the month and the sum of the month:
Monthly Average: =Avg(Fields!Amount.Value,"Month")
Monthly Sum :  =Sum(Fields!Amount.Value,"Month")
If the amount value comes from another dataset using the lookup function, you can use expression below o get the monthly average:
=Avg(Lookup(source_expression, destination_expression, result_expression, dataset),Month")
preview like below:
More details information about the LookUp function for your reference:
https://technet.microsoft.com/en-us/library/ee210531(v=sql.110).aspx
If your problem still exists, please try to provide us some sample data and more detail information about your requirements.
Regards,
Vicky Liu
Vicky Liu
TechNet Community Support

Similar Messages

  • SSRS countrow Aggregate error(Aggregate and lookup functions cannot be used in query parameter expressions.)

    Below expression works fine with text box but gives error in dataset expression.
    ="SET FMTONLY OFF select  "+ join(Parameters!Column.Value,",") +" FROM pamcustom.dbo.vw_HFL_HFD_HotfileData INNER JOIN pamcustom.dbo.HFL_HFB_HotFileBatch  on BatchID = HFB_intBatchID where BatchID ="+Parameters!BatchId.Value+"
    and "+Parameters!cmbTranType.Value+" "+ iif(CountRows("DS_Aml_Mnr_Iss_Desc")=Parameters!Mnr_Iss_Desc.count," "," and aml_mnr_iss_desc in "+"('" & join(Parameters!Mnr_Iss_Desc.Value,"','")
    & "')")+iif(CountRows("ds_ReportingCategory")=Parameters!ReportingCategory.count," "," and ReportingCategory in "+"('" & join(Parameters!ReportingCategory.Value,"','") & "')")+iif(CountRows("ds_NAICSubGroup")=Parameters!NAICSubGroup.count,"
    "," and naicsubgroup in "+"('" & join(Parameters!NAICSubGroup.Value,"','") & "')")+iif(CountRows("ds_PortTrading")=Parameters!PortTrading.count," "," and porttrading in "+"('"
    & join(Parameters!PortTrading.Value,"','") & "')")+iif(CountRows("ds_GL_LE")=Parameters!GL_LE.count," "," and gl_le in "+"('" & join(Parameters!GL_LE.Value,"','") &
    "')")+iif(CountRows("ds_coagroup")=Parameters!cmbCoaGrp.count," "," and coagroup in "+"('" & join(Parameters!cmbCoaGrp.Value,"','") & "')")+iif(CountRows("Portfolio")=Parameters!cmbPort.count,"
    "," and portfolio in "+"('" & join(Parameters!cmbPort.Value,"','") & "')")+IIf(IsNothing(Parameters!txtSecID.Value)," "," and secid in ('"+Replace(Parameters!txtSecID.Value,",","','")+"')")+iif(IsNothing(Parameters!minPortFilter.Value)
    and IsNothing(Parameters!MinPort.Value)," "," and portfolio "+Parameters!minPortFilter.Value+Parameters!MinPort.Value)+iif(IsNothing(Parameters!maxPortFilter.Value) and IsNothing(Parameters!MaxPort.Value)," ","
    and portfolio "+Parameters!maxPortFilter.Value+Parameters!MaxPort.Value)+iif(IsNothing(Parameters!minCoaFilter.Value) and IsNothing(Parameters!txtMinCoa.Value)," "," and portfolio "+Parameters!minCoaFilter.Value+Parameters!txtMinCoa.Value)+iif(IsNothing(Parameters!maxCoaFilter.Value)
    and IsNothing(Parameters!txtMaxCoa.Value)," "," and portfolio "+Parameters!maxCoaFilter.Value+Parameters!txtMaxCoa.Value)
    I guess the error " Aggregate and lookup functions cannot be used in query parameter expressions." is because I am using CountRow to ensure that if all values of multi select all selected i will not use that filter in where clause.
    Pls. guide...

    Hi, Include your parameter total count in the dataset for parameter and instead of using countrows() function use the count from dataset in the expression.
    Hope this helps.........
    Ione

  • USING LOOKUP FUNCTION IN CHART

    Good Afternoon,
    I have created a simple chart in SSRS that is sourced from Analysis Services. The Grouping is by Month and the values are just attendances per month.
    I want to add a 2nd series to this chart using a stored procedure in SQL.
    Both share the field Month and could be linked on that field.
    Does anybody know how I can use the lookup function to add this field to my chart.
    Thank you

    You can lookup by month. In the chart values, add a new series by clicking the Plus icon and choosing Expression. You expression should look something like:
    =Lookup( Fields!AS_Month.Value, Fields!SP_Month.Value, Fields!SP_Value.Value, "SP_Dataset" )
    The abbreviation AS refers to your analysis services dataset, while the SP refers to your dataset using the stored procedure. The expression matches each month used in the chart (the category group) with the month in the other data set, and retrieves the
    SP_Value field to show on the chart.
    If the month numbers/names match exactly, then it will work fine.
    Regards,
    Andrew Borg Cardona

  • Using lookup function but to show multiple returns?

    Okay so I have been talked through how to use a lookup function to show which student in my class has scored the highest grade.  The formula used displays there name in one column and the score they achieved in another column which I have set up in a small seperate table.  However as suggested in my intial lookup function search it was suggested that I would encounter a problem if two students both achieved the same highest score.  However in the results table I have created it only shows one student.  Is it possible to have a function or formula that will simply show the top scores and the students that scored it when they are tied? 
    Thanks
    Marcus

    The easiest way to accomplish this, Marcus, is by simply sorting all rows by grade.  Sure, you can click on the column tab and hit "sort ascending", but I'm guessing you want something a little more dynamic than that.
    So I've set up a class of 20 students and gave them all random grades btwn 40 - 99.  (That's how it was done when I was in high school.  )  I added a third column which takes that grade, multiplies it by 1000, and adds the row number of the student.  This creates a unique identifier based on a possibly-non-unique grade:
    Now it's simply a matter of using the LARGE function to rank these new identifiers, and then using LOOKUP to get the actual grade and name for that identifier.  (Note that the grades changed; changing the focus from one cell to another creates new random values for the grades.)
    The formula for columns b and c for this Ranking table are standard Lookup functions:
    =LOOKUP($A1,Grades :: $C,Grades :: $B) to get the grades  ($A2 for 2nd column, etc.), and
    =LOOKUP($A1,Grades :: $C,Grades :: $A) to get the names.
    I'd suggest hiding these identifier columns.
    Now, to limit this display to the "X" highest grades, I'm going to continue this into another reply.
    Vince

  • Using Lookup

    Post Author: jeff.p18
    CA Forum: Data Integration
    Hello (mother-tongue = french)
    I'm a BODI beginner and I often have things lije this to code :
                SELECT gd.num_ecrou_ini, ae.dat_epreuve, ae.cod_diplome, u2018Ru2019, 2
                FROM gdet_det gd,
                atf_expertise ae,
                t_ods_w_diplome wde
                WHERE gd.num_ecro_cou = ae.num_ecro_cou
          AND gd.num_ecro_cou = (         SELECT max(gd2.num_ecro_cou)
                                                         FROM gdet_det gd2
                                                         WHERE gd2.num_ecro_ini = gd. num_ecro_ini   )
                AND gd.num_ecrou_ini not in (   SELECT wde2.num_ecrou_ini
                                       FROM t_ods_w_diplome wde2  )
                AND 2 < = (      SELECT min(hd2.priorite)
                                       FROM t_ods_h_diplome hd2
                                       WHERE hd2.num_ecrou_init = gd.num_ecrou_ini)
          AND gd.num_ecro_cou = (         SELECT max(ae2.dat_expertise)
                                                         FROM gdet_det ae2
                                                         WHERE ae2.num_ecro_cou = ae. num_ecro_cou  )
    I wonder if it is recommended to use lookup to implement it in BODI.
    Look at my where clause in BODI :
    GDET_DET_1.NUM_ECRO_COU = ATF_EXPERTISE_1.NUM_ECRO_COU ANDlookup_ext(&#91;ds_ods_info_penit.SCOTT.T_ODS_W_DIPLOME,'PRE_LOAD_CACHE','MAX'&#93;,    &#91;NUM_ECRO_INI&#93;,&#91;0&#93;,&#91;NUM_ECRO_INI,'=',GDET_DET_1.NUM_ECRO_INI&#93;) = 0 ANDlookup_ext(&#91;ds_ods_info_penit.SCOTT.T_ODS_H_DIPLOME,'PRE_LOAD_CACHE','MIN'&#93;,    &#91;PRIORITE&#93;,&#91;9&#93;,&#91;NUM_ECROU_INIT,'=',GDET_DET_1.NUM_ECRO_INI&#93;) >= 2 ANDlookup_ext(&#91;ds_source_gide_source.dbo.GDET_DET,'PRE_LOAD_CACHE','MAX'&#93;,   &#91;NUM_ECRO_COU&#93;,&#91;NULL&#93;,&#91;NUM_ECRO_INI,'=',GDET_DET_1.NUM_ECRO_INI&#93;) = GDET_DET_1.NUM_ECRO_COU ANDlookup_ext(&#91;ds_source_gide_source.dbo.ATF_EXPERTISE,'PRE_LOAD_CACHE','MAX'&#93;,   &#91;DAT_EXPERTISE&#93;,&#91;NULL&#93;,&#91;NUM_ECRO_COU,'=',GDET_DET_1.NUM_ECRO_COU&#93;) = ATF_EXPERTISE_1.DAT_EXPERTISE
    It is working but should i choose another way to do that ?
    subsidiary question : does BODI use Oracle analytical function to perform that ?
    Thanks in advance
    +

    Hi jimmy5495,
    According to your description, it seems like you don’t know how to correctly use Lookup function. Based on my research, Lookup function is not supported to be used in a single textbox that means outside Data Grid with multiple datasets environment. Because
    in a single textbox with multiple datasets environment, it only supports Aggregate functions when we want to use fields in it. While Aggregate functions are not allowed inside the Destination or Result expressions of a Lookup function.
    We can add the expression in a table textbox in the design surface, then delete the other cells. While if we want to add this expression in page header, since page header can only contain static items, I think we could achieve this goal in current release
    of Reporting Services.
    References:
    Aggregate Functions Reference (Report Builder and SSRS)
    Page Headers and Footers (Report Builder and SSRS)
    Regards,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Lookup function issue or specific cell data binding problem

    I  have a dataset which has datatable having 2 columns i.e
    Table( Id string,Value string)
    Every single record in the datatable represents an answer to particular question, Id column being question identifier and Value column  being an answer and every question has answer being stored for 7 days.
    Now i have designed a report which is in the form of grid like
                         Day1 Answer, Day2 Answer, Day3 Answer............................Day7 Answer
    Question 1 
    Question 2
    .Question 40
    I tried using lookup function in ssrs reporting service to bind every single cell in the report using data from dataset like
    = Lookup("question_identifier",QuestionId.Value,AnswerValue.Value,"mydataset");
    The report is working absolutely fine in the report designer as expected but when i take it to the ASP.NET website where i have to generate it, it never shows up and i get report couldn't be found and make sure you have published the report kind of errors.
    I figured that this is the problem with lookup function because as soon as i removed all lookup function expressions in the report , the report started to show up but without data.
    Please let me know if there is another way to go around this problem or fix this issue.
    Thanks,
    BR,

    Hi Jolly,
    I don't think we need lookup function for this. We have only one dataset, the report can be easily created by simply modifying the query of the dataset and place those fields in the tablix report. Refer below example,
    create table reporttable(id int, value varchar(200))
    insert into reporttable values(1,'abc')
    insert into reporttable values(1,'abc1')
    insert into reporttable values(1,'abc2')
    insert into reporttable values(1,'abc3')
    insert into reporttable values(1,'abc4')
    insert into reporttable values(2,'abc')
    insert into reporttable values(2,'abc1')
    insert into reporttable values(2,'abc2')
    insert into reporttable values(2,'abc3')
    insert into reporttable values(2,'abc4')
    insert into reporttable values(3,'abc')
    insert into reporttable values(3,'abc1')
    insert into reporttable values(3,'abc2')
    insert into reporttable values(3,'abc3')
    insert into reporttable values(3,'abc4')
    select id as [Question],'Day ' + cast(row_number() over (partition by id order by id) as varchar) + ' Answer' as AnsCol
    from reporttable
    Regards, RSingh

  • How to use analytic function with aggregate function

    hello
    can we use analytic function and aggrgate function in same qurey? i tried to find any example on Net but not get any example how both of these function works together. Any link or example plz share with me
    Edited by: Oracle Studnet on Nov 15, 2009 10:29 PM

    select
    t1.region_name,
    t2.division_name,
    t3.month,
    t3.amount mthly_sales,
    max(t3.amount) over (partition by t1.region_name, t2.division_name)
    max_mthly_sales
    from
    region t1,
    division t2,
    sales t3
    where
    t1.region_id=t3.region_id
    and
    t2.division_id=t3.division_id
    and
    t3.year=2004
    Source:http://www.orafusion.com/art_anlytc.htm
    Here max (aggregate) and over partition by (analytic) function is in same query. So it means we can use aggregate and analytic function in same query and more than one analytic function in same query also.
    Hth
    Girish Sharma

  • Using the lookup function in Numbers '09

    I'm looking for the way to have the lookup function in Numbers '09 return an error for a non-exact match.  Eg. I want an invalid part number to state this, but currently all I can get is the return of data for the closest match.  Thank you.

    when you use the VLOOKUP() function the last, optional, argument can request and exact match.  When an exact match is not available VLOOKUP() will return an error.
    you can use the IFERROR() function to trap errors like this:
    =IFERROR(<FUNCTION_TO_TRY>, "NOT FOUND")
    In your case.... if <FUNCTION_TO_TRY> is you VLOOKUP(<WHAT_TO_FIND>, <RANGE>, <COLUMN>, 0), the "0" specifies exact match and you could then place all this in the IFERROR() like this:
    =IFERROR(VLOOKUP(<WHAT_TO_FIND>, <RANGE>, <COLUMN>, 0) "NOT FOUND")
    <WHAT_TO_FIND> is what to look for,
    <RANGE> is where to look,
    <COLUMN> is the number of the column in the range you want to return

  • How can I use AGO function with aggregates

    I use aggregated table and a detailed table
    I have time hierarchy whose lowest level is date. For sales I
    created year-to-year (YTD) comparision with AGO function. It
    works OK.
    BUT, I want to speed it up, so I used aggregates. I created new
    time table grouped by MONTH and corresponding agg_SALES table. I
    created connections and mapped the fields. It works OK for
    normal queries, that means my queries at month level use
    aggregates. BUT when I add YTD measures or YAGO measure in query, it goes to
    then SALES table whose grain is date.
    How can I force BI Server to use AGO function with aggregates?
    I use OBIEE 10.1.3.4
    Thank you
    Ishaq
    (Question originally taken from ITtoolbox and posted by Gorazd)
    SORRY - THE QUESTION IS IN THE WRONG FORUM
    Edited by: ishaq12 on Nov 19, 2008 12:21 PM

    Hi,
    you can not do it in Administration tool but you can set agregation for that field in Answers (fx->Agregation rule->Sum) and effect should be the same. Note that it may not work properly on Oracle 10g as generated SQL is not 100% recognized, on 11g everything is OK (at least in my case).
    Regards,
    Marko
    Edited by: user10449532 on 2008.11.19 06:29

  • Using aggregates in AGO function

    Hello!
    I want to use AGO function that would use aggregates.
    Requirements:
    I want to be able to make year-to-year comparision, where I compare period based on specific dates
    This same year-to-year comparision I want to speed up using aggregated fact tables grouped on months level.
    I created aggregated SALES table and aggregated time table (group by month) and it works OK with normal queries. It uses aggregated tables when apropriate (possible)
    When I use AGO function it always goes to fact table, which time dimension is at lowest level (i.e. date). How can I force BI server to use monthly aggregated tables in AGO function?
    Any tip, workaround?
    BI server 10.1.3.2.1
    Thank you,
    Gorazd
    Message was edited by:
    gor
    Message was edited by:
    gor

    I tested it and in case of AGO function it goes to detailed fact table SALES instead on agg_sales. Any tips?
    Gorazd
    Message was edited by:
    gor

  • Error using LISTAGG function to aggregate the strings.

    HI
    I am using LISTAGG function to aggregate the strings but throws a error ORA - 19011
    The output of the aggregated function exeeds the varchar limit.
    I dont know how to change it to a LOB.
    Can you please help me.
    This is the code.
    I have used both the functions.
    RTRIM(XMLAGG(XMLELEMENT(e,FDCT.USER_NAME || ' ')).extract('//text()'), ' ')
    or
    LISTAGG(FDCT.USER_NAME, ',') WITHIN GROUP (ORDER BY FDCT.USER_NAME)
    Edited by: 787819 on Jun 22, 2011 1:46 PM

    If a function returns a VARCHAR2, then it will error (or sometimes truncate depending on function) when reaching the limit of the datatype.
    Perhaps an alternative would be to write your own user-defined aggregate function that works with a CLOB.
    http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10765/aggr_functions.htm#ADDCI2120
    A comma-separated string over 32767 in length sounds of dubious value to me anyway...

  • Is there a way of getting LOOKUP function to return the address of a cell rather than the value?

    Hi
    I am wondering if there is a way of converting the value found in a LOOKUP function into a reference for the cell in question.
    I have constructed the following formula:
    =OFFSET(LOOKUP(A2,August :: $A),2,2)
    In an attempt to return the value of a cell which is two rows and two columns away from the cell returned by a LOOKUP function.
    But I am getting the error Argument 1 of OFFSET expects a reference but found "Name."
    Could someone advise?
    Thanks,
    Nick

    nick_harambee wrote:
    Hi
    I am wondering if there is a way of converting the value found in a LOOKUP function into a reference for the cell in question.
    I have constructed the following formula:
    =OFFSET(LOOKUP(A2,August :: $A),2,2)
    In an attempt to return the value of a cell which is two rows and two columns away from the cell returned by a LOOKUP function.
    But I am getting the error Argument 1 of OFFSET expects a reference but found "Name."
    Could someone advise?
    Thanks,
    Nick
    Nick,
    To find the row that a searched-for value is in, use MATCH.
    Jerry

  • When using TODATE function MDX query is not correctly generated

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

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

  • Essbase as a source in OBIEE 11g and using lookup to Relation database

    Hello All,
    We are trying to implement Essbase as primary source for our obiee 11g repository and using relational database as secondary source of data.
    I was using a lookup functionality in repository to lookup value from one of the Essbase's Dimension's attribute to relational database, however, there is error when testing this in OBIEE Dashboards.
    And tried to look this error in support.oracle and googled it but was not able to find anything on it.
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 46008] Internal error: File server\Query\Src\SQLookupUtility.cpp, line 145. (HY000)
    Have you had any such issue and how can we pass this issue?
    I am trying to find if there are any quick resolution before going to oracle support.
    TIA.
    Parish

    Is Essbase 11.1.1.3 supported as a source for OBIEE 11g?From the certification matrix (http://www.oracle.com/technetwork/middleware/bi-enterprise-edition/bi-11gr1certmatrix-166168.xls) we can see that only Essbase 9.3.3+ and 11.1.2+ are supported, not 11.1.1.3
    Paul

  • Dense Lookup Function in OBIEE

    Hi ,
    Can someone please explain the syntax of Dense Lookup Function in OBIEE.
    The function in the built-in RPD is using too many arguments and I am not able to understand it.
    Thanks in Advance for the help.
    Akshatha

    I had actually seen all those links. Thanks for your time although.
    Actually, I have an expression like this.
    lookup( DENSE LookupTable.DOMAIN_MEMBER_NAME, 'MCAT', 'CMP' || '~' || Table_A.TOP_LVL_PRODCAT_ID, VALUEOF(NQ_SESSION.USER_LANGUAGE_CODE), Table_A.DATASOURCE_NUM_ID)
    I am not sure of what 'MCAT' and 'CMP' is here?
    Is the || the concatenation operator?
    Can you please explain this expression?
    I hope I am not asking too much here :/
    Akshatha

Maybe you are looking for