Query deducting values row by row

hi !
I have a table of products with fields (product, qtty, fixed value) and i need to make a query to show a list of values deducting a qtty of a fixed value but adding the qtty by product. For example:
PRODUCT......QTTY......FIXED VALUE....RESULT
AAAAAAA......1000.............5000..................4000
AAAAAAA........800.............5000..................3200
AAAAAAA........900.............5000..................2300
BBBBBBB........200...............700....................500
BBBBBBB........100...............700....................400
i tried use lead and lag but unitl now i can´t to solve my problem.
thank´s
Fernando.

SELECT
   product,
   qty,
   fixed,
   fixed - SUM(qty) OVER (PARTITION BY product ORDER BY rn) left
FROM
    SELECT
       product,
       qty,
       fixed,
       fixed - qty left,
       row_number() OVER (PARTITION BY product ORDER BY qty) rn
    FROM
        SELECT 'A' product, 1 qty, 10 fixed FROM dual
        UNION ALL
        SELECT 'A' product, 1 qty, 10 fixed FROM dual
        UNION ALL
        SELECT 'A' product, 1 qty, 10 fixed FROM dual
        UNION ALL
        SELECT 'B' product, 3 qty, 20 fixed FROM dual
P        QTY      FIXED       LEFT
A          1         10          9
A          1         10          8
A          1         10          7
B          3         20         17Message was edited by:
le848dave
used row_number to fix multiple of same quantity for one product problem

Similar Messages

  • BEX Query : unexpected values in tab rows.

    Hi experts,
    I work on BW 3.5, and have the following problem :
    I have a web template with 2 tabs givings some result numbers. It works quite well on the validation environment.
    I load it in production environment, and the following happens :
    some results are incorrectly displayed. For instance, a ratio is displayed '125,12' (%), but when I ask for 'ratio definition' (right clic on the mouse), it gives me the right value (10,2 %).
    How can it be ?
    Is it a referenced SAP bug ?
    Can it be arranged ?
    much thanks to all contributors.
    Fred

    The problem came from the buffured queries result.
    The following solved the problem :
    - transaction RSRT->cache memory monitor->suppress
    - I had then to edit the problematic queries with Query Designer and just save them again.
    After that, every thing seams ok.
    I understand for RSRT, but I have no idea why I had to save queries again.
    Any idea ?
    Much thanks anyhow.
    Fred

  • Query produces duplicate values in successive rows. Can I null them out?

    I've had very good success (Thanks Andy) in getting detailed responses to my posted questions, and I'm wondering whether there is a way in a report region join query that produces successive rows with duplicate values that I can suppress(replace) the print of the duplicate values in those rows. In case I've managed to twist the question into an unintelligible mess (One of my specialties), let me provide an example:
    We're trying to list the undergraduate institutions that an applicant has attended, and display information about dates of attendence, gpa, and major(s)/minor(s) taken. The rub is that there can be multiple major(s)/minor(s) for a given undergraduate institution, so the following is produced by the query:
    University of Hard Knox 01/02 01/06 4.00 Knitting
    University of Hard Knox 01/02 01/06 4.00 Cloth Repair
    Advanced University 02/06 01/08 3.75 Clothing Design
    Really Advanced U 02/08 01/09 4.00 Sports Clothing
    Really Advanced U 02/08 01/09 4.00 Tennis Shoe Burlap
    I want it to look like this:
    University of Hard Knox 01/02 01/06 4.00 Knitting
    Cloth Repair
    Advanced University 02/06 01/08 3.75 Clothing Design
    Really Advanced U 02/08 01/09 4.00 Sports Clothing
    Tennis Shoe Burlap
    * (edit) Please note that the cloth repair and tennis shoe repair rows would be correctly positioned in a table, but unfortunately got space suppresed here for some reason. *
    Under Andy's tuteage, I'd say the answer is probably javascript looping through the DOM looking for the innerHTML of specific TDs in the table, but I'd like to confirm that, or, does Apex provide a checkbox that I can check that will produce the same results? Thanks in advance guys, and sorry for all the questions. We've been tasked to use Apex for our next project and to learn it by using it, since the training budget is non-existant this year. I love unfunded mandates ;)
    Phil
    Edited by: Phil McDermott on Aug 13, 2009 9:34 AM

    Hi Phil,
    Javascript is useful, as is the column break functionality within Report Attributes (which would be my first choice if poss).
    If you need to go past 3 columns, I would suggest doing something in the SQL statement itself. This will mean that the sorting would probably having to be controlled, but it is doable.
    Here's a fairly old thread on the subject: Re: Grouping on reports (not interactive) - with an example here: [http://htmldb.oracle.com/pls/otn/f?p=33642:112] (I've even used a custom template for the report, but you don't need to go that far!)
    This uses the LAG functionality within SQL to compare the values on one row to the values on the preceeding row - being able to compare these values allows you to determine which ones to display or hide.
    Andy

  • Finding minimum value in each row using dynamic query

    need to find the minimum and maximum value from each row using dynamic query
    [from curr] will be given as input
    Tuky

    DECLARE @t TABLE(a INT,b INT,c INT);
    INSERT @t VALUES(1,2,3),(9,8,7),(4,6,5);
    SELECT *
    ,      (   SELECT  MAX(val) 
               FROM    (VALUES (a)
                           ,   (b)
                           ,   (c)
                       ) AS value(val)
           ) AS MaxVal 
    ,      (   SELECT  MIN(val) 
               FROM    (VALUES (a)
                           ,   (b)
                           ,   (c)
                       ) AS value(val)
           ) AS MinVal 
    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

  • How To Concatenate Column Values from Multiple Rows into a Single Column?

    How do I create a SQL query that will concatenate column values from multiple rows into a single column?
    Last First Code
    Lesand Danny 1
    Lesand Danny 2
    Lesand Danny 3
    Benedi Eric 7
    Benedi Eric 14
    Result should look like:
    Last First Codes
    Lesand Danny 1,2,3
    Benedi Eric 7,14
    Thanks,
    David Johnson

    Starting with Oracle 9i
    select last, first, substr(max(sys_connect_by_path(code,',')),2) codes
    from
    (select last, first, code, row_number() over(partition by last, first order by code) rn
    from a)
    connect by last = prior last and first = prior first and prior rn = rn -1
    start with rn = 1
    group by last, first
    LAST       FIRST      CODES                                                                                                                                                                                                  
    Lesand         Danny          1,2,3
    Benedi         Eric           7,14Regards
    Dmytro

  • How can i get all these values in single row with comma separated?

    I have a table "abxx" with column "absg" Number(3)
    which is having following rows
    absg
    1
    3
    56
    232
    43
    436
    23
    677
    545
    367
    xxxxxx No of rows
    How can i get all these values in single row with comma separated?
    Like
    output_absg
    1,3,56,232,43,436,23,677,545,367,..,..,...............
    Can you send the query Plz!

    These all will do the same
    create or replace type string_agg_type as object
    2 (
    3 total varchar2(4000),
    4
    5 static function
    6 ODCIAggregateInitialize(sctx IN OUT string_agg_type )
    7 return number,
    8
    9 member function
    10 ODCIAggregateIterate(self IN OUT string_agg_type ,
    11 value IN varchar2 )
    12 return number,
    13
    14 member function
    15 ODCIAggregateTerminate(self IN string_agg_type,
    16 returnValue OUT varchar2,
    17 flags IN number)
    18 return number,
    19
    20 member function
    21 ODCIAggregateMerge(self IN OUT string_agg_type,
    22 ctx2 IN string_agg_type)
    23 return number
    24 );
    25 /
    create or replace type body string_agg_type
    2 is
    3
    4 static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
    5 return number
    6 is
    7 begin
    8 sctx := string_agg_type( null );
    9 return ODCIConst.Success;
    10 end;
    11
    12 member function ODCIAggregateIterate(self IN OUT string_agg_type,
    13 value IN varchar2 )
    14 return number
    15 is
    16 begin
    17 self.total := self.total || ',' || value;
    18 return ODCIConst.Success;
    19 end;
    20
    21 member function ODCIAggregateTerminate(self IN string_agg_type,
    22 returnValue OUT varchar2,
    23 flags IN number)
    24 return number
    25 is
    26 begin
    27 returnValue := ltrim(self.total,',');
    28 return ODCIConst.Success;
    29 end;
    30
    31 member function ODCIAggregateMerge(self IN OUT string_agg_type,
    32 ctx2 IN string_agg_type)
    33 return number
    34 is
    35 begin
    36 self.total := self.total || ctx2.total;
    37 return ODCIConst.Success;
    38 end;
    39
    40
    41 end;
    42 /
    Type body created.
    [email protected]>
    [email protected]> CREATE or replace
    2 FUNCTION stragg(input varchar2 )
    3 RETURN varchar2
    4 PARALLEL_ENABLE AGGREGATE USING string_agg_type;
    5 /
    CREATE OR REPLACE FUNCTION get_employees (p_deptno in emp.deptno%TYPE)
    RETURN VARCHAR2
    IS
    l_text VARCHAR2(32767) := NULL;
    BEGIN
    FOR cur_rec IN (SELECT ename FROM emp WHERE deptno = p_deptno) LOOP
    l_text := l_text || ',' || cur_rec.ename;
    END LOOP;
    RETURN LTRIM(l_text, ',');
    END;
    SHOW ERRORS
    The function can then be incorporated into a query as follows.
    COLUMN employees FORMAT A50
    SELECT deptno,
    get_employees(deptno) AS employees
    FROM emp
    GROUP by deptno;
    ###########################################3
    SELECT SUBSTR(STR,2) FROM
    (SELECT SYS_CONNECT_BY_PATH(n,',')
    STR ,LENGTH(SYS_CONNECT_BY_PATH(n,',')) LN
    FROM
    SELECT N,rownum rn from t )
    CONNECT BY rn = PRIOR RN+1
    ORDER BY LN desc )
    WHERE ROWNUM=1
    declare
    str varchar2(32767);
    begin
    for i in (select sal from emp) loop
    str:= str || i.sal ||',' ;
    end loop;
    dbms_output.put_line(str);
    end;
    COLUMN employees FORMAT A50
    SELECT e.deptno,
    get_employees(e.deptno) AS employees
    FROM (SELECT DISTINCT deptno
    FROM emp) e;
    DEPTNO EMPLOYEES
    10 CLARK,KING,MILLER
    20 SMITH,JONES,SCOTT,ADAMS,FORD
    30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES
    CREATE OR REPLACE FUNCTION concatenate_list (p_cursor IN SYS_REFCURSOR)
    RETURN VARCHAR2
    IS
    l_return VARCHAR2(32767);
    l_temp VARCHAR2(32767);
    BEGIN
    LOOP
    FETCH p_cursor
    INTO l_temp;
    EXIT WHEN p_cursor%NOTFOUND;
    l_return := l_return || ',' || l_temp;
    END LOOP;
    RETURN LTRIM(l_return, ',');
    END;
    COLUMN employees FORMAT A50
    SELECT e1.deptno,
    concatenate_list(CURSOR(SELECT e2.ename FROM emp e2 WHERE e2.deptno = e1.deptno)) employees
    FROM emp e1
    GROUP BY e1.deptno;
    DEPTNO EMPLOYEES
    10 CLARK,KING,MILLER
    20 SMITH,JONES,SCOTT,ADAMS,FORD
    30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES
    CREATE OR REPLACE TYPE t_string_agg AS OBJECT
    g_string VARCHAR2(32767),
    STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT t_string_agg)
    RETURN NUMBER,
    MEMBER FUNCTION ODCIAggregateIterate(self IN OUT t_string_agg,
    value IN VARCHAR2 )
    RETURN NUMBER,
    MEMBER FUNCTION ODCIAggregateTerminate(self IN t_string_agg,
    returnValue OUT VARCHAR2,
    flags IN NUMBER)
    RETURN NUMBER,
    MEMBER FUNCTION ODCIAggregateMerge(self IN OUT t_string_agg,
    ctx2 IN t_string_agg)
    RETURN NUMBER
    SHOW ERRORS
    CREATE OR REPLACE TYPE BODY t_string_agg IS
    STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT t_string_agg)
    RETURN NUMBER IS
    BEGIN
    sctx := t_string_agg(NULL);
    RETURN ODCIConst.Success;
    END;
    MEMBER FUNCTION ODCIAggregateIterate(self IN OUT t_string_agg,
    value IN VARCHAR2 )
    RETURN NUMBER IS
    BEGIN
    SELF.g_string := self.g_string || ',' || value;
    RETURN ODCIConst.Success;
    END;
    MEMBER FUNCTION ODCIAggregateTerminate(self IN t_string_agg,
    returnValue OUT VARCHAR2,
    flags IN NUMBER)
    RETURN NUMBER IS
    BEGIN
    returnValue := RTRIM(LTRIM(SELF.g_string, ','), ',');
    RETURN ODCIConst.Success;
    END;
    MEMBER FUNCTION ODCIAggregateMerge(self IN OUT t_string_agg,
    ctx2 IN t_string_agg)
    RETURN NUMBER IS
    BEGIN
    SELF.g_string := SELF.g_string || ',' || ctx2.g_string;
    RETURN ODCIConst.Success;
    END;
    END;
    SHOW ERRORS
    CREATE OR REPLACE FUNCTION string_agg (p_input VARCHAR2)
    RETURN VARCHAR2
    PARALLEL_ENABLE AGGREGATE USING t_string_agg;
    /

  • Drill down on all values of a row from bex universe

    Hi
    We had developed BO universe on bex query, and as in web i the whole row will come as a single object.
    so when we drill  on the row the drill is not performing on the whole row rather its happenig on a single value of the row
    Ex:- if we have rows named as US, china, America, Japan, Gross sales, invoice etc
    when wen i drill on any row for lets say US, and i drilled on currecy type the drill is happening only us from the row.
    But we need this drill on whole values of the row,
    if aware of bex analyser, we need the same drill down future as in bex.
    Any help in this regards is appreciable.
    Thanks in Advance,

    Hi,
    Your code seems to be right.
    Try writing the code as the below format.
    CASE SY-UCOMM.
    * CHECK FUNCTION CODE
    WHEN '&IC1'.
    * CHECK FIELD CLICKED ON WITHIN ALVGRID REPORT
    IF SELFIELD-FIELDNAME = 'LIFNR'.
    * READ DATA TABLE, USING INDEX ROW USER CLICKED ON
    READ TABLE IT_FINAL INTO WA_FINAL INDEX SELFIELD-TABINDEX.
    * SET PARAMETER ID FOR TRANSACTION SCREEN FIELD
    SET PARAMETER ID 'BES' FIELD WA_FINAL-LIFNR.
    * EXECUTE TRANSACTION 'XK03',AND SKIP INITIAL DATA ENTRY SCREEN.
    CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.
    ENDIF.
    ENDCASE.
    Thanks
    Arbind

  • How to retrive KFF segment values in each row of VO?

    Hi,
    I need to retrve Special Information Type values in HR screen.
    There is a table based on the VO and on of the column is a flex (KFF) linked ot the same VO.
    How can i retrieve the KFF segments values from each row of the table (or VO row).
    The VO contains the ID_FLEX_NUM only.
    Specific issue details:
    It is an HR screen
    page : PersonSIT Page
    Region : SpecialInformationType(Table)
    VO : SpecialInformationDetailsVO
    flex id="HrSitKeyFlex" flexName="PEA" flexFieldAppShortName="PER" user:akAttributeCode="HR_PERSON_SIT_FLEX"
    Any information is of great help
    Thanks,
    Kamath..

    Vo Query is
    SELECT /*+ ORDERED */pac.analysis_criteria_id,
    ppa.analysis_criteria_id old_analysis_criteria_id,
    ppa.person_analysis_id,
    ppa.object_version_number,
    ppa.id_flex_num,
    ppa.business_group_id,
    ppa.person_id,
    ppa.date_from,
    ppa.date_to,
    'DB_ROW' status,
    ppa.date_from old_date_from,
    ppa.date_to old_date_to,
    ppa.attribute1,
    ppa.attribute2,
    ppa.attribute3,
    ppa.attribute4,
    ppa.attribute5,
    ppa.attribute6,
    ppa.attribute7,
    ppa.attribute8,
    ppa.attribute9,
    ppa.attribute10,
    ppa.attribute11,
    ppa.attribute12,
    ppa.attribute13,
    ppa.attribute14,
    ppa.attribute15,
    ppa.attribute16,
    ppa.attribute17,
    ppa.attribute18,
    ppa.attribute19,
    ppa.attribute20,
    ppa.attribute_category
    FROM per_person_analyses ppa,
    per_analysis_criteria pac
    WHERE ppa.business_group_id = :1
    AND ppa.person_id = :2
    AND ppa.id_flex_num = :3
    AND pac.analysis_criteria_id = ppa.analysis_criteria_id
    The values from log file for a single row is as below
    i = 0
    row.getAnalysisCriteriaId()=68198
    row.getAttribute1()=null
    row.getAttribute10()=null
    row.getAttribute11()=null
    row.getAttribute12()=null
    row.getAttribute13()=null
    row.getAttribute14()=null
    row.getAttribute15()=null
    row.getAttribute16()=null
    row.getAttribute17()=null
    row.getAttribute18()=null
    row.getAttribute19()=null
    row.getAttribute20()=null
    row.getAttribute2()=null
    row.getAttribute3()=null
    row.getAttribute4()=null
    row.getAttribute5()=null
    row.getAttribute6()=null
    row.getAttribute7()=null
    row.getAttribute8()=null
    row.getAttribute9()=null
    row.getAttributeCategory()=null
    row.getBusinessGroupId()=83
    row.getDateFrom()=2009-10-01 03:32:38.0
    row.getDateTo()=null
    row.getIdFlexNum()=50454
    row.getPersonAnalysisId()=null
    row.getObjectVersionNumber()=null
    row.getOldAnalysisCriteriaId()=null
    row.getOldDateTo()=null
    row.getOldDateTo1()=null
    row.getPersonId()=46788
    row.getSelectFlag()=Y
    row.getStatus()=NEW_ROW
    Here, row.getIdFlexNum()=50454 is the id_flex_num- KFF structure code which has 4 segments.
    I need to get the value for the VaueSet of Segment1
    The segment values are displayed in the OAF page but i did not get how did std oracle code fetch it
    Thanks,
    kamath

  • Please help..it's Urgent..How to fetch the value from table row from Page

    Hi,
    I have created a table with 2 LOV's , LOV2 is dependent on LOV2.
    Here I can not use the general Dependent LOV concept, as these values are coming from 2 different LookUps.
    I am not able to fetch the user input for LOV1 (from page) .that is why not able to set the where cluse fro 2nd LOVVO.
    I have used this code:
    if ("ViolationCat".equals(lovInputSourceId)) {
    OAMessageLovInputBean msglov =
    (OAMessageLovInputBean)webBean.findChildRecursive("ViolationCat");
    // String p_violation_category = "'"+(String)msglov.getValue(pageContext)+"'";
    String p_violation_category =
    (String)msglov.getValue(pageContext);
    // System.out.println(" p_violation_category =" +
    // p_violation_category);
    String v_violation_category = "";
    //System.out.println("vcat=" + vCat);
    OAViewObject violationVO =
    (OAViewObject)am.findViewObject("SNI_Violation_DtlsVO2");
    Number vcatViolationIdnum =
    (Number)violationVO.getCurrentRow().getAttribute("ViolationId");
    String vcatViolationId = "" + vcatViolationIdnum;
    pageContext.putTransactionValue("vcatViolationId",
    vcatViolationId);
    pageContext.putTransactionValue("p_violation_category",
    p_violation_category);
    String query =
    " SELECT LOOKUP_CODE, \n" + " MEANING, \n" +
    " LOOKUP_TYPE \n" +
    " FROM apps.fnd_lookup_values \n" +
    " WHERE LOOKUP_TYPE ='SNI_VIOLATION_CATEGORY' AND MEANING=?";
    PreparedStatement ps = txn.createPreparedStatement(query, 1);
    try {
    ps.setString(1, p_violation_category);
    ResultSet rs = ps.executeQuery();
    //System.out.println("before while,");
    // rs.next();
    // v_violation_category = rs.getString("LOOKUP_CODE");
    // System.out.println("v_violation_category="+v_violation_category);
    while (rs.next()) {
    //System.out.println("inside while");
    v_violation_category = rs.getString("LOOKUP_CODE");
    // System.out.println("v_violation_category=" +
    // v_violation_category);
    ps.close();
    } //try ends
    catch (Exception e) {
    e.getMessage();
    //System.out.println("in catch.." + e.getMessage());
    OAViewObject subCatVO =
    (OAViewObject)am.findViewObject("SNI_ViolationSubCategoryVO1");
    //System.out.println("get VO before where clause: subCatVO::"+subCatVO.getQuery());
    subCatVO.setWhereClause("LOOKUP_TYPE like '%SNI_VIOL_SUB_CAT_" +
    v_violation_category + "'");
    System.out.println("after set where clause VO: subCat VO::" +
    subCatVO.getQuery());
    subCatVO.executeQuery();
    // System.out.println("query of subCat VO::" +
    // subCatVO.getQuery());
    //End of sub category Validation
    It is working fine only for the 1st row of teh table.
    I have tried to fetch the value using :
    String violationCategory = (String)violationVO.getCurrentRow().getAttribute("ViolationCategory");
    String violationSubcategory = (String)violationVO.getCurrentRow().getAttribute("ViolationSubcategory");
    But it is fetching null value.
    Please tell me how can I able to fetch the values.

    Hi
    in your scenarion,first u have to identify the particular row of table where the changes is being made ,u have to use this code .when u select the lov ,first it will give the row refernce and then u have to catch the lov event
    OAApplicationModule am =
    (OAApplicationModule)pageContext.getApplicationModule(webBean);
    String event = pageContext.getParameter("event");
    if ("<ItemPPREventName>").equals(event))
    // Get the identifier of the PPR event source row
    String rowReference =
    262
    pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);
    Serializable[] parameters = { rowReference };
    // Pass the rowReference to a "handler" method in the application module.
    am.invokeMethod("<handleSomeEvent>", parameters);
    In your application module's "handler" method, add the following code to access the source row:
    OARow row = (OARow)findRowByRef(rowReference);
    if (row != null)
    thanx
    Pratap

  • Color report rows based on a value in that row

    I would like to Color report rows based on a value in that row.
    For examplle with the "EMP" table:
    I would like job=MANAGER to be red and job=CLERK to be green etc etc
    The other example I found only had the option of one color either the highlight or the default color.
    I am looking for a way to do multiple colors.

    Hi,
    In the row template, you can use #1#, #2#, etc to indicate where a field in the report needs to be output. This does not have to be plain text - ie, you can use it within style tags if you like.
    So, take a query like:
    SELECT EMPNO,
    ENAME,
    DEPTNO,
    DECODE(DEPTNO, 10, 'green', 20, 'red', 30, 'cyan', 'white') BG_COLOUR
    FROM EMPYou get columns 1=empno, 2=ename, 3=deptno and 4=bg_colour. In the row template, you can then do:
    Before Rows setting (sets up the table):
    &lt;table&gt;
    &lt;tr&gt;&lt;td&gt;ID&lt;/td&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt;Dept&lt;/td&gt;&lt;/tr&gt;After Rows setting (closes the table):
    &lt;/table&gt;Row Template 1 (used for ALL rows):
    &lt;tr style="background-color:#4#;"&gt;&lt;td&gt;#1#&lt;/td&gt;&lt;td&gt;#2#&lt;/td&gt;&lt;td&gt;#3#&lt;/td&gt;&lt;/tr&gt;Then, for every row, the colour that has been calculated using the DECODE function will be used in the style tag to colour the background for the entire row.
    How you determine the colours is up to you. I've used DECODE here, but you could use a field on the DEPT table to hold this and use this in your SQL statement.
    Andy

  • POPUPKEY_FROM_QUERY returning value to wrong row

    Hi,
    I'm running Apex 3.0.1. I have a tabular report that I'm trying to add a popup from query that returns the key/code value (instead of the display value).
    I can call the pop-up okay, but it's returning the value to the wrong table row. I can see in the naming of the Javascript functions that it's looking at the wrong row. For example, here are 4 rows in display order and the names of the Javascript function calls:
    1. javascript:genList0_f15_1()
    2. javascript:genList0_f15_3()
    3. javascript:genList0_f15_2()
    4. javascript:genList0_f15_0()
    I can see in the function call that it's passing an index that doesn't match the displayed row number here:
    "&p_element_index=" +  escape ('1') + So if I click on the LOV icon for row 1 and select one of the LOV values, it will return the value to the second displayed row (zero-based index).
    I've read here of some issues with not having all rows make the call (e.g. in this post from Patrick Wolf date_popup returning value to wrong row but all my rows have values.
    The tabular report allows sorting by column headers, which I would guess is (at least part of) what's messing the function numbering? The query generates the rows, including the function calls, but the report displays in a different order?
    Any suggestions would be greatly appreciated.
    Thanks,
    Stew
    Good luck,
    Stew
    My Oracle Community blog: http://www.oraclecommunity.net/profiles/blog/list?user=stewstryker

    Christina,
    You hit the nail on the head! The tabular form region was defined as SQL Query - without the Updateable part! I'm not sure why I didn't have it that way from the start...
    Now I just have to find and implement the Javascript that will copy the updated value that's returned by the LOV to the correct column (defined as apex_item.text). That was the only way I could figure how to allow the user to enter a value directly or select from a LOV. Clumsy but functional I believe!
    Thanks to you and Scott for the tips.
    Stew

  • Exists (SQL query returns at least one row) condition with MAX on 10.2.0.4

    I just wanted to note this on the forum..
    I'm using Apex 3.0.1.00.08
    My DEV environment has just been upgraded from 10g version 10.2.0.2.0 to 10.2.0.4.0.
    I created the following process to select some values into some items on my Form page.
    select  MAX(STAT_YEAR+1)
          , pcd.pct_id
          , pcd.stat_type_id
          , pcd.stat_period_type_id
          , pcd.measurement_id
    into    :P11_STAT_YEAR
          , :P11_PCT_ID
          , :P11_STAT_TYPE_ID
          , :P11_STAT_PERIOD_TYPE_ID
          , :P11_MEASUREMENT_ID
    from  plant_commodity_data pcd
        , stat_type stt
    where pcd.STAT_TYPE_ID = stt.STAT_TYPE_ID
      and pcd.pct_id = :P0_PCT_ID
      and stt.stat_type = 'PRD'
    group by pcd.pct_id
          , pcd.stat_type_id
          , pcd.stat_period_type_id
          , pcd.measurement_id;The process should run conditionally if there was at least one row to select...
    So I copied the SQL into the Process condition, removed the "into" section and set the condition type to be "Exists (SQL query retruns at least one row) ...
    select  MAX(STAT_YEAR+1)
          , pcd.pct_id
          , pcd.stat_type_id
          , pcd.stat_period_type_id
          , pcd.measurement_id
    from  plant_commodity_data pcd
        , stat_type stt
    where pcd.STAT_TYPE_ID = stt.STAT_TYPE_ID
      and pcd.pct_id = :P0_PCT_ID
      and stt.stat_type = 'PRD'
    group by pcd.pct_id
          , pcd.stat_type_id
          , pcd.stat_period_type_id
          , pcd.measurement_id;This worked perfectly until the DEV environment was upgraded from 10g version 10.2.0.2.0 to 10.2.0.4.0.
    The condition would fire even if there were no rows returning.
    I pasted the condition code into SQL Developer connected to the DEV (10.2.0.4.0) environment and it returned no rows.
    To solve the problem, I removed the MAX.
    You can test this using this code if you have access to the two versions... select  MAX(1)
          , sysdate
          , 'Gus'
    from  dual
    where 1 = 2
    group by sysdate, 2Now I know the MAX isn't required in the condition as I'm just trying to find out if any rows exist, but it was there as I copied the code in... I was just wondering why this happened between 10.2.0.2.0 and 10.2.0.4.0?
    Gus..

    Hi Gus,
    try to execute
    select count(*) from dual where exists (select  MAX(1)
          , sysdate
          , 'Gus'
    from  dual
    where 1 = 2
    group by sysdate, 2)in SQL Developer. The above statement is generated by APEX for an "Exists (SQL query retruns at least one row)". Can't test it, because I don't have a 10.2.0.4.0 at hand.
    Does SQL Developer now show the same behavior?
    Patrick
    My APEX Blog: http://www.inside-oracle-apex.com
    The APEX Builder Plugin: http://builderplugin.oracleapex.info/
    The ApexLib Framework: http://apexlib.sourceforge.net/

  • Single Sub Row Query Returns More Than 1 Row!

    I am trying to update values in a table from another table and getting the error: Single Sub Row Query Returns More Than 1 Row.
    I want table B's PRV_NAME updated into table A's PRV_NAME where A.PRVID = B.PRVID where B.PRV_TYPE = M'
    Both tables have all unique PRVID's, however, table B has PRVID's that have the same name. So table B data can look like this:
    PRVID PRV_NAME
    1234 PHOENIX MED
    1235 SAC MED
    1236 SAC MED
    1237 OVERLAND
    etc..
    So, as you can see the PRVID's are unique, but not the PRV_NAME's. Is this the reason why I get this error?
    I did not build the tables and have no control over what is put in them. If this is the reason for the error, is there any way to resolve this?
    For reference, here is the query. Maybe there is something wrong with this?
    update msb_prv_source ps
    set ps.prv_name =
    (select prv00.prv00_prv_name
    from prv00_prv prv00
    join msb_prv_source ps
    on prv00.prv00_prv_id = ps.prvid
    where prv00.prv00_prv_type = 'M')
    Edited by: user12296489 on Apr 19, 2013 10:46 AM

    Hi,
    user12296489 wrote:
    I am trying to update values in a table from another table and getting the error: Single Sub Row Query Returns More Than 1 Row. Post your code. It's hard to say what you're doing wrong when I don't know what you're doing.
    I want table B's PRV_NAME updated into table A's PRV_NAME where A.PRVID = B.PRVID
    Both tables have all unique PRVID's, however, table B has PRVID's that have the same name. So table B data can look like this:
    PRVIDIf b.prvid is really unique, then
    UPDATE  a
    SET     prv_name = (
                     SELECT  prv_name
                     FROM    b
                     WHERE   a.prvid     = b.prvid
    ;should work, whether the other columns are unique or not.
    (Depending on your data and your requirements, you might want to use MERGE rather than UPDATE).
    I hope this answers your question.
    If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data.
    In the case of a DML operation (such as UPDATE) the sample data should show what the tables are like before the DML, and the results will be the contents of the changed table(s) after the DML.
    Explain, using specific examples, how you get those results from that data.
    Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
    See the forum FAQ {message:id=9360002}
    Edited by: Frank Kulash on Apr 19, 2013 2:00 PM
    I see you've posted your code now:
    update msb_prv_source ps
    set ps.prv_name =
    (select prv00.prv00_prv_name
    from prv00_prv prv00
    join msb_prv_source ps
    on prv00.prv00_prv_id = ps.prvid
    where prv00.prv00_prv_type = 'M')Even if ps.prvid is unique, the sub-query can return more than 1 row if prv00.prv00_prv_id is not unique. When that that's the case, what do you want to happen? Include examples when you post the sample data and desired results.

  • How to Update some column values in some rows in an advanced table

    Hi Gurus,
    Can any body help on this issue.
    I am having a results table which is showing all the queried parties data queried in a seeded page in OCO module.
    Lets assume the table contains 10 rows with the below columns
    Party Name, Registry ID, Address Country, Match Percentage, Certification Level, Certification Reason, Internal Indicator, Status .
    Certification Level, Certification Reason and Internal Indicator are the dropdowns.
    The user want to update some of these fields values for some rows randomly.
    After doing this if he click on Save button, Only thosed changed rows need to get update using a Custom Procedure.
    But here all the rows irrespective of the change getting updated.
    So  how to capture the modified rows.
    Appreciate any inputs..
    Thanks
    Palepu
    Edited by: Palepu on 9 Aug, 2012 4:25 PM

    Not sure if you got the answer. You need to capture the row which got changed using the below and get the column value using the getAttribute method. This works for single selection row, if it is multi selection then you will have to loop through all selected rows and find the VO attribute value.
    String rowReference = pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);
    Row currentRow = am.findRowByRef(rowReference);
    String param1= (String)currentRow.getAttribute("VOAttribute");
    Let me know if there are any issues.
    Thanks
    Shree

  • Retrieve the same value for all rows

    Hi Folks,
    I am a newbie to Kodo JDO. I have a little but important problem. I use a
    query to retrieve data with a simple filter like PName=='A'. Normally it
    should retrieve 3 rows with 3 different values but it does not. Instead I
    got 3 rows but with all the same value of one row???
    Do I have a configuration problem?? Oh, I forgot, I use postgresql 8.0 on
    Windows...
    Thx a lot....
    Juergen

    Hi,
    You may want to turn on the SQL log (use the kodo.Log property, and set
    the SQL channel to TRACE... for more details on logging, check out
    chapter 3 in the Kodo Ref Guide) and see what SQL is being generated.
    Once you see the SQL, does it look right? If you run the generated SQL
    in your SQL command line, do the results match what you expect? If that
    doesn't help, maybe post the SQL and some info about your mapping.
    Thanks,
    Greg
    J wrote:
    Hi Folks,
    I am a newbie to Kodo JDO. I have a little but important problem. I use a
    query to retrieve data with a simple filter like PName=='A'. Normally it
    should retrieve 3 rows with 3 different values but it does not. Instead I
    got 3 rows but with all the same value of one row???
    Do I have a configuration problem?? Oh, I forgot, I use postgresql 8.0 on
    Windows...
    Thx a lot....
    Juergen

Maybe you are looking for