Select in SQL based on parameter

I have a user parameter coming in that can be one of three values: REAL, PERS, REPP. If it is REAL, I need to select TOT07, if it is PERS, I need to select TOT21, if it is REPP, I need to select both fields. I also need to combine the values for these fields on the report so that only one value shows.
I have been trying to use the formula & placeholder columns, but I haven't been successful in retrieving the data. I tried using a formula column to get the following:
if parameter = REAL: :TOT07_HOLD = 'TOT07', :TOT21_HOLD = 0
if parameter = PERS: :TOT07_HOLD = 0, :TOT21_HOLD = 'TOT21'
if parameter = REPP: :TOT07_HOLD = 'TOT07', :TOT21_HOLD = 'TOT21'
Then I need to use these placeholder columns in my SQL as follows:
SELECT :TOT07_HOLD AS TOT07_VAL, :TOT21_HOLD AS TOT21_VAL
When I do this, I only get the value that I set in the formulas (field names), not the value from the database. Since these are the field names and not values, I can't sum up the column as it is defined as character, not numeric.
Can anyone help me?
Kris

Hello Kris,
Can you post the actual query so we can take a better look at it? Because from the look of the query you posted which is :
SELECT :TOT07_HOLD AS TOT07_VAL,
              :TOT21_HOLD AS TOT21_VALYou would definitely just get the assigned values. It's like the following a query in SQL*plus:
define tot07_hold = '1'
define tot21_hold = '2'
select &tot07_hold as tot07,
         &tot21_hold as tot21
from dual
     TOT07      TOT21
         1          2even if you have an actual table it will repeat the same value as to how many rows where selected from that table:
select &tot07_hold as tot07,
         &tot21_hold as tot21
from District_cd
     TOT07      TOT21
         1          2
         1          2
         1          2
         1          2
         1          2
         1          2
         1          2
         1          2
         1          2
         1          2
         1          2-Marilyn

Similar Messages

  • SSRS 2008 - hide chart lines based on parameter selected

    How to control visibility of chart lines based on Params selected by user?
    By default, my report display last 3 years worth of data (including current) with Month on the x axis and Counts on the y axis. I have two Boolean parameters:
    TwoYrs? T/F
    ThreeYrs? T/F
    if False is selected for TwoYr and ThreeYr parameters then I want to hide chart lines corresponding to last year and the year before.
    What I've tried: Created 3 Series groups with filters. eg. YearSeries1 to return only current year data and applying an expression to display it if params TwoYrs and ThreeYrs = False. and so on for YearSeries2 to return current + last
    years data if param TwoYrs is True and ThreeYrs = False.  But I don't see where to add expression to control the display of the individual series groups.  I am open to any way of doing this, but this seemed most logical.

    Hi Ok-Hee,
    In your Source Query just need to filter the series data based on the Parameters.
    I have written sample query below:-
    select * from
    select 1 monthnumber , 'Jan' MonthName, 2013 year,100 amount
    union
    select 1 monthnumber , 'Jan' MonthName, 2014 year ,200 amount
    union
    select 1 monthnumber , 'Jan' MonthName, 2015 year , 300 amount
    union
    select 2 monthnumber , 'Feb' MonthName, 2013 year, 300 amount
    union
    select 2 monthnumber , 'Feb' MonthName, 2014 year, 350 amount
    union
    select 2 monthnumber , 'Feb' MonthName, 2015 year,200 amount
    union
    select 3 monthnumber , 'Mar' MonthName, 2013 year, 380 amount
    union
    select 3 monthnumber , 'Mar' MonthName, 2014 year, 100 amount
    union
    select 3 monthnumber , 'Mar' MonthName, 2015 year, 500 amount
    )t
    where year in (
    select distinct FilterYear from
    select case when @TwoYrs=1 then year(getdate())-1 else year(getdate()) end FilterYear
    union
    select case when @TwoYrs=1 and @ThreeYrs =1 then year(getdate())-2 else year(getdate()) end FilterYear
    union
    select year(getdate()) FilterYear
    ) t
    I have created one post in my blog , you can check the result.
    https://msbitips.wordpress.com/2015/03/12/ssrs-2008-hide-chart-lines-based-on-parameter-selected/
    Thanks
    Prasad

  • SSRS Matrix report to show or hide year column based on parameter value "Date" selected.

    Hey experts!
    I have a requirement an ssrs matrix report should display columns (year/s) based on parameter value (date/s). 
    My Dataset fileds are: Product, Year_name, Month_name, Date
    Currently my report output looks like this-
    Param Date: 2013-08-01 00:00:0.000
    Product +Calender2011      +Calender2012     -Calender 2013........                        +Calender2014
                             Total
                      Total Jan13  Feb 13  Mar13..  Dec13   Total           Total
    Abc                      100
                        220
    10      20         30.......  20       250              400
    Xyz 110
    200 50      80         40.......  30       450              600
    My requirement:  if I'm selecting Date parameter value as '2013-xx-xx' I should only able to see Year column 'Calender2013' and rest of the years should hide. Similarly If I'm selecting Date parameter value as '2014-xx-xx' I should only able to
    see Year column 'Calender2014' .
    Appreciate your kindly help. 
    Afan

    Hi Afan,
    According to your description, you want to only show the selected year on your report, right?
    In this case, you need to get the year from the date parameter using the expression below
    =Year(Parameters!Date.Value)
    And then use the expression below to get the year from Year_Name field.
    =Right(Fields!Year_Name.Value,4)
    Then add a filter to the dataset to filter the data like below
    Expression:=Year(Parameters!Date.Value)
    Operator:=
    Value:=Right(Fields!Year_Name.Value,4)
    Reference
    http://msdn.microsoft.com/en-IN/library/dd255287.aspx
    If you have any questions, please feel free to ask.
    Regards,
    Charlie Liao
    TechNet Community Support

  • F4 help for select options based on parameter value

    hi all,
    I need a help to create an F4 help for select options for object id based on parameter value of object type, I mean once an object type is given the f4 help should contain object id's only of that type for each option.
    Regard's,
    Girija
    Moderator Message : Duplicate post locked. Continue with [f4 help for select options based on parameter value |f4 help for select options based on parameter value;.
    Edited by: Vinod Kumar on May 17, 2011 1:36 PM

    hi all,
    I need a help to create an F4 help for select options for object id based on parameter value of object type, I mean once an object type is given the f4 help should contain object id's only of that type for each option.
    Regard's,
    Girija
    Moderator Message : Duplicate post locked. Continue with [f4 help for select options based on parameter value |f4 help for select options based on parameter value;.
    Edited by: Vinod Kumar on May 17, 2011 1:36 PM

  • Run query based on parameter

    Hi,
    I have a report where i'm selecting values based on parameter entered by user. There are only 2 options e.g A or B.
    If A then select *
    where name = A
    or if B then select *
    where name != A basically select everything apart from A.
    Can anyone please tell me how to do this. Thanks.

    There are many ways to do this .
    easy way that i use.
    in the "where clause" of sql query statement
    SELECT decode(SUBSTR(TO_CHAR(FIELD_NAME),1,3),'EFT','IND','USA')
    FROM TABLE
    WHERE decode(SUBSTR(TO_CHAR(FIELD_NAME),1,3),'EFT','IND','USA')=
    NVL(:P_SOURCE,decode(SUBSTR(TO_CHAR(FIELD_NAME),1,3),'EFT','IND','USA')
    Then you have to add these'IND and 'USA' in parameter form( drop down list)
    note: use only required functions.

  • SSRS table report based on parameter

    Hi ,
    I have @EMP parameter in ssrs report, for every employee there are ticket numbers. For one one Employee there may be two or three tickets. When I select @EMP1 in parameter a table will be displayed and on top of table ticket number is coming.If there are
    2 tickets for the same employee , two tables( table1,Table2) should come and the ticket numbers come ticket1 on table1 and ticket2 on table2 should come ...means based on the parameter slection the ticket numbers are coming and as per the number
    of tickets the cout of tables are coming....please help me in this .......I am using SQl not MDX :)

    Hi,
    According to your description, every employee have different tickets. Now you want to set a parameter, when you select one value from parameter, tickets of employee will appears in different tables separately.
    In this scenario, we can’t create a textbox out of a list, which can make ticket numbers dynamically appear on top of table based on parameter selection. However, we can combined a matrix with a list. Then create two parameters to select different values
    to show different tickets for same employee in different tables separately. Please refer to steps below:
    1. Add DataSet1, fill in with Employee, Ticket and Number.
    2. Add Dataset2, use query like below:
           Select distinct Employee from tic
        Use query in Dataset3 like below:  
           Select distinct Ticket from tic
    3. Add parameter @Employee, open Report Parameter Properties. On General page, choose “Allow multiple values” box. On available Values page, choose Get values from a query, set Dataset as DataSet2, Value filed as Employee, Label filed as employee. Add
    parameter @Ticket in the same way.
    4. Create a table, right click [Employee], choose Add group->Row groups->Parent group. In Group by box, choose Employee. Choose Add group header and add group footer boxes.
    5. Delete original Employee column. Right click [Employee], choose Split cells. Delete second row and forth row.
    6. Create a matrix, fill in with Employee, Ticket and Number.
    7. Create a list, drop the matrix into list. Right click anywhere in list, choose Select->Tablix3 to select list. On Properties, set DataSetName  as DataSet1.
    8. On Row Groups, choose Add Group->Parent Group from drop-list of (Details1). On Tablix group, choose [Ticket] from drop-list of Group by box. Looks like below:
    9. Click Preview, select different value from drop-list of parameters. The results look like below:
    Reference: Lists (Report Builder and SSRS)
    If you have any question, please feel free to ask.
    Best regards,
    Qiuyun Yu

  • About SELECT VALUE FROM NLS_INSTANCE_PARAMETERS WHERE PARAMETER =""

    I am developing a web application based on Oacle 10g .But after the DBServe was startedup for about 5~6 hours, the max connection process exceeded. From the DB Administration Tool it shows that there were many INACTIVE Connections which executed
    SELECT VALUE FROM NLS_INSTANCE_PARAMETERS WHERE PARAMETER ='NLS_DATE_FORMAT'
    But it seems that this is called by the JDBC driver, not my application. How to avoid this, or release the inactive connection?
    By the way,who and when call that sql?
    Thanks a lot.

    By the way,who and when call that sql?Also for this you can take an 10046 level 8 sql trace and format the output with sys=yes option of tkprof - http://tonguc.wordpress.com/2006/12/30/introduction-to-oracle-trace-utulity-and-understanding-the-fundamental-performance-equation/
    Since we are talking about a web application you may use a database logon trigger to start sql trace for your application user, or if possible you may set sql_trace database parameter to true at instance level for a while and since you are at 10g you can use new package dbms_monitor and trcsess utility - http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/sqltrace.htm#sthref2001
    Best regards.

  • How to write a  SQL based on a  view can get the best performance ?

    Hi ,
        I am thinking about performance of  sql based on VIEW .<b>For the best performance ,How to do when I create  and use a view ?</b>  for example , Should i use key in my where clause as select data from table?  (of cause ,this key refers to the key of table which structure the view. ) , <b>Could you give me any advice on creating and using view in term of performance</b> ?

    Hi Guixin Chen,
    Performance depends on various factors. The major key factors are:
    1.  Result Set should be Small
    2.  Amount of Data Transferred should be minimum.
    3.  Number of Data Transfers should be minimum.
    4.  Search Overhead should be minimum.
    5.  Database Load should be minimum.
    For more details, check the following docs.
    <b>Performance Notes</b>
    http://help.sap.com/saphelp_nw04s/helpdata/en/fc/eb3b7e358411d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/5b/320c40ac368f5ce10000000a155106/frameset.htm
    You can also check Performance by,
    1.  Transaction code ST05
    2.   From ABAP Workbench using the menu path Test Performance Trace.
    Dont forget to reward pts, if it helps ;>)
    Regards,
    Rakesh.

  • Sending email using PL/SQL based on a query result

    Hello all,
    I want to create a procedure using PL/SQL, based on a query result.Here is the scenario:
    I have multiple tables in Target and Source databases that I want to compare(not the whole table but queries on these tables) and if they differ, I want to shoot an email. I have some ideas how to implement this but not sure whether it is the best approach.
    select Acct_id, total from SourceTableA
    minus
    select Acct_id, total from TargetTableA
    select Acct_id, sum from SourceTableB
    minus
    select Acct_id, sum from TargetTableB
    If the result of any of above queries > 0 then I want to shoot an email and want to repeat this procedure in the morning every day.
    I know how to implement send_mail procedure using UTL_SMTP package and how to schedule tha job by dbms_job package. But I am not sure how to implement the result of minus query. In case if minus > 0 then I also want to send the name of tables in the email message where source and target tables are not same. Should i use cursor, variable or insert the result in a new table? any help would be highly appreciated. Thanks in advance.
    Khan

    Actually these queries are the part of our daily testing that we run everyday manually(after the scheduled ETL load) to see if there are any discrepencies between our datawarehouse tables and source tables. So instead of running these queries manually everyday we want to schedula a procedure that will shoot an email in case of any discrepency and indicate which tables have problems.

  • Master table detail table with SQL based read only VO with bind variables

    i have a page where i am displaying data as master table and detail table. both table VOs are based on SQL queries which use bind variables.
    i have a view link between vos of type 1:M
    i created master table detail table page by dropping detail iterator from data control panel under master and selecting master table detail table
    on my page i see detail table records getting populated only for first record of parent table.
    on changing parent record, child table shows same records and does not refresh
    i am using partial triggers on both tables to be populated on a button click as i need to pass some bind variables to VOs which are taken as input from users
    how can i show corresponding rows in detail table when parent record in table changes
    is it possible declaratively to have master detail table view when both VOs have bind variables
    jdev 11 1 1 5
    these are the SQLs used
    Parent SQL Based VO Query
    SELECT to_char(d.status_date,'yyyymmddhh24') TIME123, count(DISTINCT d.c4)
    FROM t1 d,
    t2 w
    WHERE w.c1 = nvl(:ou, w.c1)
    AND UPPER(w.c2) = UPPER(nvl(:tt, w.c2))
    AND d.c3 >= :startTime AND :startTime IS NOT NULL
    AND d.c3 <= :endTime AND :endTime IS NOT NULL
    AND d.c4 = w.c4
    AND UPPER(d.status) = 'CLOSED'
    GROUP BY to_char(status_date,'yyyymmddhh24') ORDER BY to_char(status_date,'yyyymmddhh24') DESC
    Child SQL Based VO Query
    SELECT w.c1,
    w.c5 - w.c6 processing_time,
    w.c3,
    w.c6,
    w.c7,
    w.c8,
    to_char(d.status_date,'yyyymmddhh24') TIME123 FROM t1 d,
    t2 w
    WHERE w.c2 = nvl(:ou, w.c2)
    AND UPPER(w.c3) = UPPER(nvl(:tt, w.c3))
    AND d.c4 >= :startTime AND :startTime IS NOT NULL
    AND d.c4 <= :endTime AND :endTime IS NOT NULL
    AND d.c1 = w.c1
    AND UPPER(d.status) = 'CLOSED' ORDER BY to_char(status_date,'yyyymmddhh24') DESC
    view link is based on column TIME123

    Instead of doing the master-detail layout by dragging the details over, can you try a new page where you first drag the master VO over and then drag the detail VO over, and then set partialTrigger from the detail to point to the master?

  • Select List (query based LOV) in a wizard created report form

    I have created an updatable report form with 3 columns:
    app_id
    user_id
    group_id
    Each app_id has multiple group_id's associated with it, and I want to show the group_id field as a Select List (query based LOV) that contains the groups associated with the app_id.
    My query for the select list needs to be similar to the following:
    SELECT DISPLAY_NAME, GROUP_ID
    FROM APPLICATION_GROUPS
    WHERE APP_ID = ?????
    ORDER BY 1
    The problem is, I don't know how to reference the app_id from the main report to replace the ?????.
    In other words, if my report returns 2 rows of data like this:
    app_id----------user_id----------group_id
    1-----------------24------------------3
    2-----------------24------------------15
    Then how do I get the group_id column to be a select list of possible groups for each application? If app_id 1 has 3 groups associated with it, 3, 4, & 5 and app_id 2 has 2 groups associated with it, 15 & 16, then those each of the select lists should be based on the app_id.
    Hopefully I explained this clearly.
    Thanks,
    Kris

    Leo,
    Thanks for the response, but I don't think you quite understand my problem. If I go to the Column Attributes screen for the group_id field, I have the "Display As" drop down set to "Select List (query based LOV)", not "Select List (named LOV)". This requires that the sql query be written in the "List of values definition" text area below. Within that text area I have the following query:
    SELECT DISPLAY_NAME, GROUP_ID
    FROM APPLICATION_GROUPS
    WHERE APP_ID = ?????
    ORDER BY 1
    The APP_ID that I need to reference is for the current row of data that is being processed. Therefore, I can't use a :PNNN_APP_ID variable, because that field does not exist on the page.
    Hopefully this explains it a little better.
    Thanks,
    Kris

  • Character string buffer too small (select list query based LOV)

    Hi,
    Using the select list query based LOV with a select witch is too big, you get this error.
    report error:
    ORA-20001: Error fetching column value: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    When using the Popup LOV query based LOV) then it works nice.
    Can that be solved somehow?
    With the Popup LOV the return value is displayed in stead of the description.

    Hi Andy,
    How do I incorporate your suggestion on a report ?
    Example : I have
    select apex_item.display_and_save(1,column1,5) col1,
    apex_item.display_and_save(2,column2,5) col2 ,
    apex_item.popup_from_query(3, emp_name, 'select user_name, name  empname from table2) col3
    Table 2 is a long list , and I'm getting string buffer too small due to this.
    Your suggestion with HTP is good but I'm not sure how to implement it for reports as I'll like the user to change the values with the select_list.
    I'm not using forms as they want mulit-record on the same page.
    Hope to hear back from you soon.
    Thanks very much.

  • Select List (query based LOV) in V. 4.1.1.00.23

    Hi guys,
    I am having some problems with an APEX application that I have exported from V. 4.1.0.00.32 and imported on V. 4.1.1.00.23.
    I have a Tabular Form region where I have a column which is Display As "Select List (Query based LOV)".
    If I add a new row - choose a new value (not the same as any of the above rows) and "Apply Changes"/"Submit" the value in the new row changes to the value of the 1. row of the tabular form :-( I can update this new row and then it saves the right value... It looks like it is only when inserting a new row.
    Is this a bug or is it a feature ;-)
    Hope you can help...
    /Rene

    Leo,
    Thanks for the response, but I don't think you quite understand my problem. If I go to the Column Attributes screen for the group_id field, I have the "Display As" drop down set to "Select List (query based LOV)", not "Select List (named LOV)". This requires that the sql query be written in the "List of values definition" text area below. Within that text area I have the following query:
    SELECT DISPLAY_NAME, GROUP_ID
    FROM APPLICATION_GROUPS
    WHERE APP_ID = ?????
    ORDER BY 1
    The APP_ID that I need to reference is for the current row of data that is being processed. Therefore, I can't use a :PNNN_APP_ID variable, because that field does not exist on the page.
    Hopefully this explains it a little better.
    Thanks,
    Kris

  • Passing in Parameters other then the list of paramters in PL/SQL based Item

    When you create an Item Type based on PL/SQL there is a section where you choose the parameters such as Page ID, Page Group... I wanted to pass the parent id to the proc but I dont see an attribute for Parent ID.... how pass the parent id as a parameter to a pl.sql store proc

    When you want to link to a portal page the URL contains the parameters pageid, dad, portal, scheme, where
    are they define since I created a PL/SQL based stored proc and passing in the page id, site id and parent id
    and dont see an option for parent id so how could I use it... I created a custom attribute and passed in the parent id
    as well to the following url...
    regular url:
    http://localhost:7778/portal/page?_pageid=111,222223&_dad=portal&_schema=PORTAL
    url with parameter added that gets no result:
    http://localhost:7778/portal/page?_pageid=111,222223&_dad=portal&_schema=PORTAL&parentid=28084
    if I set the parameter in the Custom Item type to the default value it just remains as the default value
    and I am unable to change it...

  • URGENT - Does Select Query Sort based on RowId ?

    Does Select Query Sort based on RowId ?
    Eg: Select * from Employee;
    RowId primkey name
    aaaa 1 kiran
    aaab 2 kumar
    aaac 3 someone
    Now when i delete the primkey: 2 row.
    I will have:
    RowId primkey name
    aaaa 1 kiran
    aaac 3 someone
    Now when i insert a new record:
    RowId primkey name
    aaaa 1 kiran
    aaac 3 someone
    [Comment: Here the rowid can either be a new one like 'aaad' or 'aaab' is also reused.]
    aaad 4 somename
    My requirement is that the 'aaab' should not be reused.
    Can any one pls suggest some way.

    Dear Friend,
    Plese gothrougth once following steps... (One by One)
    Hope you can understand how Rowid Creating and Updting in you table.
    SQL> select rowid,enumber from t;
    ROWID ENUMBER
    AAAJ4oAABAAAWlyAAA 1
    AAAJ4oAABAAAWlyAAB 2
    AAAJ4oAABAAAWlyAAC 3
    AAAJ4oAABAAAWlyAAD 4
    SQL> select rowid,enumber from t where enumber = 2;
    1 row deleted.
    SQL> insert into t values(9):
    1 row created.
    SQL> select rowid,enumber from t;
    ROWID ENUMBER
    AAAJ4oAABAAAWlyAAA 1
    AAAJ4oAABAAAWlyAAC 3
    AAAJ4oAABAAAWlyAAD 4
    AAAJ4oAABAAAWlyAAE 9
    SQL> delete from t where enumber = 3;
    1 row deleted.
    SQL> insert into t values(3);
    1 row created.
    SQL> select rowid,enumber from t;
    ROWID ENUMBER
    AAAJ4oAABAAAWlyAAA 1
    AAAJ4oAABAAAWlyAAB 3
    AAAJ4oAABAAAWlyAAD 4
    AAAJ4oAABAAAWlyAAE 9
    Regards,
    G V Sreenivasulu

Maybe you are looking for