HOWTO: Perform a Calculation on One Row of a Query

Use this method if you can't perform the calculation at the entity object level--for example, if the calculation involves columns from more than one table, involves transient attributes, or if your view object is pure SQL-based (i.e., not based on any entity objects).
First, you have to generate a view row class.
1. Right-click the view object that represents your query and choose "Edit."
2. When the View Object wizard appears, select the Java page.
3. In the View Row panel, select "Generate Java Class" and "Generate Accessors."
4. Click "Done".
This generates a class called <VoName>RowImpl.java
Next, you should edit the class and add a method that performs your calculation.
1. Double-click the class to bring it up in the source editor.
2. Add a method to perform your calculation, such as the following:
public int sumCol1AndCol2() {
int Col1Val=getCol1().intValue();
int Col2Val=getCol2().intValue();
return (Col1Val + Col2Val);
Next, you need to export your method so that your client can use it.
1. Right-click the view object and choose "Edit."
2. Select "Client Row Methods."
3. In the "Available" list, select the method you just added.
4. Shuttle it to the "Selected" list.
5. Click "Done".
This generates an interface called <VoName>Row containing your method. You should always call <VoName>Row from your client, never <VoName>RowImpl.
Now you're ready to call the method from your client. Here's an example of how you might do it in a JSP client:
<jbo:Row id="myrow" datasource="myVoDataSource" action="Current">
<% out.println( ((myVoRow) myrow).sumCol1AndCol2() ); %>
</jbo:Row>
Note that you have to cast myrow to your interface, since the method you created isn't on the generic interface jbo.Row.
null

Use this method if you can't perform the calculation at the entity object level--for example, if the calculation involves columns from more than one table, involves transient attributes, or if your view object is pure SQL-based (i.e., not based on any entity objects).
First, you have to generate a view row class.
1. Right-click the view object that represents your query and choose "Edit."
2. When the View Object wizard appears, select the Java page.
3. In the View Row panel, select "Generate Java Class" and "Generate Accessors."
4. Click "Done".
This generates a class called <VoName>RowImpl.java
Next, you should edit the class and add a method that performs your calculation.
1. Double-click the class to bring it up in the source editor.
2. Add a method to perform your calculation, such as the following:
public int sumCol1AndCol2() {
int Col1Val=getCol1().intValue();
int Col2Val=getCol2().intValue();
return (Col1Val + Col2Val);
Next, you need to export your method so that your client can use it.
1. Right-click the view object and choose "Edit."
2. Select "Client Row Methods."
3. In the "Available" list, select the method you just added.
4. Shuttle it to the "Selected" list.
5. Click "Done".
This generates an interface called <VoName>Row containing your method. You should always call <VoName>Row from your client, never <VoName>RowImpl.
Now you're ready to call the method from your client. Here's an example of how you might do it in a JSP client:
<jbo:Row id="myrow" datasource="myVoDataSource" action="Current">
<% out.println( ((myVoRow) myrow).sumCol1AndCol2() ); %>
</jbo:Row>
Note that you have to cast myrow to your interface, since the method you created isn't on the generic interface jbo.Row.
null

Similar Messages

  • Passing one row of a query to a function

    I want to pass a query into a function one row at a time in
    the same way you could pass an array to a function one row at a
    time. I've read that queries are just CF structures under the hood
    so I believe it should be possible. I just don't know the syntax to
    reference a single query row (and all it's variables).
    I don't want to pass the whole query to the variable because
    I would like to do the looping outside the function. The idea is to
    simplify and standardize the formatting and arrangement of several
    variables (columns) in a UDF and keep the syntax to use the
    function simple. Therefore, I'd like to avoid having to do stuff
    like convert the query to an array. That would defeat the goal of
    keeping it simple.
    Thanks
    Magnus

    > myQuery.getRow(), but
    > using undocumented functions make me nervous.
    I absolutely agree, as a standard "caveat emptor" sort of
    thing. Which is
    a shame because there's a wealth of functionality "under the
    hood" which is
    far more useful than the "official" approach to things.
    To be honest, I treat the whole "that stuff is 'not
    supported'" and "it
    could change in future versions" thing with a liberal amount
    of salt.
    1) I didn't find the support from Macromedia very accessible
    in the first
    place, and have no reason to think it will be any different
    with Adobe.
    Other than in emergencies (that'd be once, in eight years), I
    have never
    used official support;
    2) I've been watching a lot of the "undocumented" stuff for a
    few versions
    (like since 6.1), and it all still works;
    3) I've had more problem with "fixes" to CFML issues breaking
    workarounds
    of the same than I have with using undocumented code.
    Obviously that's
    because I have 1000 lines of "normal" code to every line of
    "undocumented"
    code I use, but still.
    Basically when one changes version of software, there's a
    chance your code
    will stop working. It doesn't seem any more risky to me to
    use
    undocumented features than documented ones.
    Food for thought, if nothing else.
    Adam

  • Selecting only one row from a query

    Hi,
    I am using database version 10.2.0.4.0
    I have 2 tables:
    artist(artistid, artistname, titleid)
    trans(transid, datesold, salesprice, titleid, artistid)
    This is what i used and got the below results.
    SELECT max(worksold) AS mostworksold
    FROM (
    SELECT artistname, COUNT(t.artistid) AS worksold
    FROM table.artist a, table.trans t
    WHERE a.artistid = t.artistid
    GROUP BY artistname
    MOSTWORKSOLD
    12
    However I also want to show the artist name who sold the most work. So i added artist name in the select, but the result came out very different.
    SELECT artistname, max(worksold) AS mostworksold
    FROM (
    SELECT artistname, COUNT(t.artistid) AS worksold
    FROM table.artist a, table.trans t
    WHERE a.artistid = t.artistid
    GROUP BY artistname
    group by artistname;
    ARTISTNAME MOSTWORKSOLD
    John 3
    Mary 4
    Alvin 9
    Trevor 5
    Jess 12
    What should I do to make it show only this?
    ARTISTNAME MOSTWORKSOLD
    Jess 12
    Regards,
    Keith
    Edited by: 963214 on Oct 5, 2012 10:12 AM
    Edited by: 963214 on Oct 5, 2012 10:40 AM

    try this... hope this helps...
    with xx as(
      select '1' as aid,'john' as anm from dual union all
      select '2' as aid,'mary' as anm from dual union all
      select '3' as aid,'alvin' as anm from dual union all
      select '4' as aid,'trevor' as anm from dual union all
      select '5' as aid,'jess' as anm from dual
    ), yy as(
      select '1' aid from dual union all
      select '2' aid from dual union all
      select '2' aid from dual union all
      select '3' aid from dual union all
      select '3' aid from dual union all
      select '3' aid from dual union all
      select '4' aid from dual union all
      select '4' aid from dual union all
      select '4' aid from dual union all
      select '4' aid from dual union all
      select '4' aid from dual union all
      select '5' aid from dual
    select x.* from
    (SELECT a.anm as nm, COUNT(t.aid) AS worksold
    FROM xx a, yy t
    WHERE a.aid = t.aid
    GROUP BY anm
    order by worksold desc) x
    where rownum = 1; gives
    trevor     5In 2 ^nd^ table, i've considered only 1 column which is actually used. Rest columns are unessential.
    Ranit B.
    Edited by: ranit B on Oct 6, 2012 12:20 AM

  • Returning one row in  a view(only)

    Is there any function that I can use to return just one row from a query?
    I tryed the old LIMIT TO from rdb, but its useless...
    I´m using a Oracle8

    Try using "where ROWNUM = 1" for the first row returned by the select

  • SQL User Defined Functions for performing statistical calculations

    Hi!
       I hope you can help.  I just wasn’t sure where to go with this question, so I’m hoping you can at least point me in the right direction.
       I’m writing a SQL Server stored procedure that returns information for a facility-wide scorecard-type report.  The row and columns are going to be displayed in a SQL Server Reporting Services report. 
       Each row of information contains “Current Month” and “Previous Month” numbers and a variance column.  Some rows may compare percentages, others whole numbers, others ratios, depending on the metric they’re measuring.  For each row/metric the company has specified whether they want to see a t-test or a chi-squared statistical test to determine whether or not there was a statistically significant difference between the current month and the previous month. 
       My question is this:  Do you know where I can find a set of already-written user defined functions to perform statistical calculations beyond the basic ones provided in SQL Server 2005?  I’m not using Analysis Services, so what I’m looking for are real SQL User Defined Functions where I can just pass my data to the function and have it return the result within a stored procedure. 
       I’m aware that there may be some third-party statistical packages out there we could purchase, but that’s not what I’m looking for.   And I’m not able to do anything like call Excel’s analysis pack functions from within my stored procedure.   I’ve asked.   They won’t let me do that.   I just need to perform the calculation within the stored procedure and return the result.
       Any suggestions?  Is there a site where people are posting their SQL Server UDF’s to perform statistical functions?  Or are you perhaps aware of something like a free add-in for SQL that will add statistical functions to those available in SQL?   I just don’t want to have to write my own t-test function or my own chi-squared function if someone has already done it.
     Thanks for your help in advance!  Oh, and please let me know if this should have been posted in the TSQL forum instead.  I wasn't entirely sure.
    Karen Grube

    STATS_T_TEST_
    docs.oracle.com/cd/B19306_01/server.102/b14200/functions157.htm 
    STATS_T_TEST_ONE: A one-sample t-test
    STATS_T_TEST_PAIRED: A two-sample, paired t-test (also known as a crossed t-test)
    STATS_T_TEST_INDEP: A t-test of two independent groups with the same variance (pooled variances)
    STATS_T_TEST_INDEPU: A t-test of two independent groups with unequal variance (unpooled variances)

  • View data in one row

    Hi, guys I have a table filled in this way and I can't modify the data inside:
    F1 F2 F3 F4
    1 A null null
    1 null B null
    1 null null C
    2 D null null
    2 null E null
    2 null null F
    3 G null null
    3 null H null
    3 null null I
    Is there a way to see the data in this other way (without any NULL)?:
    F1F2F3F4
    1 A B C     
    2 D E F
    3 G H I
    Thank you
    Alex
    Message was edited by:
    user566533
    Message was edited by:
    user566533

    > About the Model clause, I am sure Rob can do better and I am waiting for his solution ;-)
    This looks way too complex for the type of question for me. And as said you are generating more rows than necessary that have to be filtered by a subquery in the final step.
    Although I'm convinced that the original poster does not have rows with data in more than one of the columns, I could not resist the challenge and came up with this:
    SQL> create table mytable
      2  as
      3  select 1 f1, 'A' f2, null f3, null f4 from dual union all
      4  select 1, 'B', null, null from dual union all
      5  select 1, null, 'C', null from dual union all
      6  select 1, null, 'D', null from dual union all
      7  select 1, null, 'E', null from dual union all
      8  select 1, null, null, 'F' from dual union all
      9  select 2, 'G', null, null from dual union all
    10  select 2, 'I', null, null from dual union all
    11  select 2, 'H', null, null from dual union all
    12  select 2, null, 'T', null from dual union all
    13  select 2, null, 'K', null from dual union all
    14  select 2, 'U', null, 'J' from dual
    15  /
    Tabel is aangemaakt.
    SQL> select f1
      2       , max(decode(l,2,f)) f2
      3       , max(decode(l,3,f)) f3
      4       , max(decode(l,4,f)) f4
      5    from ( select t.*
      6                , row_number() over (partition by f1, l order by f) rn
      7             from ( select f1
      8                         , l
      9                         , decode(l,2,f2,3,f3,4,f4) f
    10                      from mytable
    11                         , (select 2 l from dual union all select 3 from dual union all select 4 from dual)
    12                  ) t
    13            where f is not null
    14         )
    15   group by f1
    16       , rn
    17   order by f1
    18       , rn
    19  /
       F1 F2    F3    F4
        1 A     C     F
        1 B     D
        1       E
        2 G     K     J
        2 H     T
        2 I
        2 U
    7 rijen zijn geselecteerd.which I think looks easier.
    > Is there a way to delete rows in model other than using subquery?
    Not really. You can leverage the "RETURN UPDATED ROWS" clause to not return the original rows, in other words: delete the original rows from the result set. But generating extra cells that are to be deleted later on, generally does not make much sense and (therefore?) there is no way to delete rows in the model clause. So the subquery is the way to do it if you really want to.
    Note that I use the subquery technique too for string aggregation using the model clause, because I tested the subquery filter is more performant than the RETURN UPDATED ROWS clause.
    Regards,
    Rob.

  • Need to split data from one row into a new row redux

    Hi folks,
    I asked this question about eight months ago (see thread https://discussions.apple.com/message/23961353#23961353) and got an excellent response from forum regular Wayne Contello.  However, I need to perform this operation again and when I attempted it recently, I am now greeted with a yellow warning triangle.  Clicking it shows "This formula can’t reference its own cell, or depend on another formula that references this cell."
    What I'm trying to do is the following:
    I have an excel file that keeps track of members of a social group.  The file places each member "unit" on a single row.  The unit can be a single person or a couple.  Columns are labeled "First1" "Last1" "Hometown1" "B-day1" while the second member of the unit is identified in columns like "First2" "Last2" etc.
    What I'd like to do is duplicate those rows with two people (which I'll do by hand) but have a way of deleting the "xxxx2" data from one row and the "xxxx1" data from the duplicate row.
    Wayne's illustrated solution was to create a blank sheet and enter the following formula in cell A2:
    =OFFSET(Input Data::$A$2, INT((ROW()−2)÷2), COLUMN()−1+IF(MOD(ROW()−2, 2)=0, 0, 4)), which apparently worked fine for me last year but now is sending up an error flag.  When I look at the formula, there is no clue except that which I quoted above.
    Can anyone (or hopefully Wayne) take a second look at this and help me out?  I can't imagine that it's a problem with using the newer version of Numbers, but who knows?  I'm using version 3.2 (1861), which is the "new" Numbers.
    Any help would really be appreciated.
    Thanks!
    -Tod

    Hi Tod,
    The error message "This formula can’t reference its own cell, or depend on another formula that references this cell." may be because your table may be different from the one you were using for Wayne's solution. Numbers has Header Rows, Footer Rows and Header Columns. Such Headers in tables exclude themselves from formulas. Excel does not recognise them as headers. What table are you using now?
    A screen shot of (the top left portion of) your table or a description of what you see under Menu > Table will help.
    Regards,
    Ian.

  • Bad performance when iterating/updating the rows of a tree table

    Hello,
    we have a tree table based on a VO and EO (with transient attributes). One of the attribute is a flag.
    The VO is populated with a complex query having many thousands of rows.
    Now, when the user clicks on a parent node, all the children are updated (their flag is set to true) recursively.
    This is really really slow. It might require several minutes, while a similar update via PL/SQL on a real table would required few seconds.
    Is there any way to improve the performance? We have already applied all the tunings on both the EO and VO mentioned in Oracle Documentation, but they had almost no effect:
    - retain viewlink row set iterators
    - query hints
    - Use update batching
    The algorithm we use is the following:
        private void checkTreeNodes(JUCtrlHierNodeBinding node, Boolean check) {
            if (node == null) {
                return;
           TreeVORowImpl nodeRow = (TreeVORowImpl)node.getRow();
            if (nodeRow != null) {
                    nodeRow.setFlag(check);
            List<JUCtrlHierNodeBinding> children = null;
            if (!nodeRow.getLevel().equals("4"))  // no more than 4 levels
                children = node.getChildren();
            if (children != null) {
                for (JUCtrlHierNodeBinding _node : children) {
                    checkTreeNodes(_node, check);
        }

    Thanks for you answer.
    I am trying to move the logic in a method of the AM. But I have an exception (jdev 11.1.2.1):
        public void checkTreeNodes(TreeVORowImpl node, Boolean check, int level) {
            if (node == null)
                return;
            node.setFlag(check);
            if (level >= 4)
                return;
            Key key = new Key(new String[] { node.getId() }); // Id is the primary Key
            // By debugging via System.out.println, the code stops here:
            RowIterator rowIt = getMyVO().findByAltKey("ParentId", key , -1, false); // children have ParentId = Id
            while (rowIt.hasNext()) {
                TreeVORowImpl row = (TreeVORowImpl)rowIt.next();
                checkTreeNodes(row, check, level + 1);
        }findByAltKey gives the following exception (since it's called from the UI by getting the AM from DataControl):
    oracle.jbo.InvalidObjNameException: JBO-25005: [...]
         at oracle.adf.model.binding.DCBindingContainerState.validateStateFromString(DCBindingContainerState.java:573)
         at oracle.adf.model.binding.DCBindingContainerState.validateStateFromString(DCBindingContainerState.java:504)
         at oracle.adf.model.binding.DCBindingContainerState.validateToken(DCBindingContainerState.java:684)
    Do you see anything wrong or not efficient?
    Thanks.

  • How to use 'BAPI_GOODSMVT_CREATE'  for more then one row selected ???

    Hi,
    I am using bapi , BAPI_GOODSMVT_CREATE  ,  my requirement is that first perform ALV display with check boxes & then user can selsct any number of rows  & then on clicking execute button  this bapi is triggered , now my ques is that  if i am selecting rows one by one & executing , then am able to post data successfully, but if am selecting  more then one row at a time then its giving me error
    " exactly one serial no must be selected  (instead of more then two / three ) ."
    plz help me .
    this is how i am filling data in BAPi & bapi call
    FORM FILL_BAPIDATA .
      wa_GOODSMVT_HEADER-PSTNG_DATE = sy-datum.
      wa_GOODSMVT_HEADER-doc_DATE = sy-datum.
      wa_goodsmvt_code-gm_code = c_gmcode.
      LOOP AT it_final INTO wa_final.
        wa_GOODSMVT_ITEM-MOVE_TYPE = c_movtype.                 " '313'.
        wa_GOODSMVT_ITEM-material =  WA_final-MATNR.
        wa_GOODSMVT_ITEM-ENTRY_QNT = wa_final-verme.
        wa_GOODSMVT_ITEM-plant =  WA_final-WERKS.               "'DB10'.
        wa_GOODSMVT_ITEM-STGE_LOC =  WA_final-LGORT.
        wa_GOODSMVT_ITEM-BATCH = WA_final-CHARG.
    wa_GOODSMVT_ITEM-BATCH = l_charg.
        append wa_GOODSMVT_ITEM to IT_GOODSMVT_ITEM.
        clear: wa_GOODSMVT_ITEM.
      ENDLOOP.
      LOOP AT it_final INTO wa_final.
        wa_serialnumber-SERIALNO = wa_final-sernr.
        APPEND wa_serialnumber to it_serialnumber.
        CLEAR wa_serialnumber.
      ENDLOOP.
      LOOP AT it_position2 INTO wa_position2.
        wa_serialnumber-MATDOC_ITM = wa_position2-wepos .
        MODIFY it_serialnumber INDEX sy-tabix from wa_serialnumber TRANSPORTING MATDOC_ITM .
      ENDLOOP.,
    data: begin of mthead.
            include structure bapi2017_gm_head_ret.
    data: end of mthead.
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
        EXPORTING
          GOODSMVT_HEADER               = wa_GOODSMVT_HEADER
          GOODSMVT_CODE                 = wa_GOODSMVT_CODE
       IMPORTING
          GOODSMVT_HEADRET              = mthead
        MATERIALDOCUMENT              = w_MATERIALDOCUMENT
        MATDOCUMENTYEAR               = w_MATDOCUMENTYEAR
        TABLES
          GOODSMVT_ITEM                 = IT_GOODSMVT_ITEM
          GOODSMVT_SERIALNUMBER         = IT_SERIALNUMBER
          RETURN                        = IT_RETURN
      GOODSMVT_SERV_PART_DATA       =
      EXTENSIONIN                   =
    APPEND w_MATERIALDOCUMENT to it_GOODSMVT1 .
    IF sy-subrc = 0 .
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    *MESSAGE text-016 TYPE 'I'.
    PERFORM msg_log  .
    ENDIF.

    Hi,
    Did u check the serial numbers table before calling the BAPI. Might be the case tht same serial number is assigned for all items, in this case the goods movement may be possible with same serial number for all items.
    Reagrds,
    Aditya
    Edited by: aditya on Aug 11, 2009 11:46 AM

  • Issue with Selection Listener when the table has only one row

    Hi All ,
    I have developed a table in which I am using Selection Listener to perform some task when any row is selected.
    It is working fine when I have more than 1 row in the table, but when I have only one row in the table , the selection listener do not call the corresponding method in bean.
    I understand that selection event will be raised only when the row is changed, but in the use case when only one row is there, what should be done to make the selection listener work ?
    In the selection listener I have written code to make the selected row as current row , and perform the required task.
    Please suggest a way out for this situation.
    Thanks in advance.

    Hi,
    try removing this attr from table
    selectedRowKeys="#{bindings.xxx_VO1.collectionModel.selectedRow}"

  • Oracle database link to MySQL select only one row

    Hello,
    I have created a connection from the Oracle batabase 11.2 to a MySQL database via database link. The following statement shows, that 35 rows are in the mySQL table:
    SQL>  select count(*) from "main_pages"@MOREWEB;
      COUNT(*)
            35
    But a normal select statement only return 1 row.
    SQL> select "subject" from "main_pages"@MOREWEB;
    subject
    Übersicht: Referenzen
    I am using the mysql-connector-odbc-3.51.30-winx64 driver. A newer version cann't be installed because on Windows Server 2008 R2 I get an error with an missing dll-file. The DataDirect-ODBC-driver is not possible, because we like to use the free MySQL-database an DataDirect only support the enterprise edition.
    I also have tried to limit the HS_OPEN_CURSORS or dont limit the HS_FDS_FETCH_ROWS, but there is no difference in the result. I always get only one row.
    HS Init.ora
    # This is a sample agent init file that contains the HS parameters that are
    # needed for the Database Gateway for ODBC
    # HS init parameters
    HS_FDS_CONNECT_INFO = moreweb
    HS_FDS_TRACE_LEVEL = ON
    HS_FDS_FETCH_ROWS=1
    # Environment variables required for the non-Oracle system
    #set <envvar>=<value>
    HS tracefile
    Oracle Corporation --- MITTWOCH   NOV 05 2014 13:56:22.066
    Heterogeneous Agent Release
    11.2.0.1.0
    Oracle Corporation --- MITTWOCH   NOV 05 2014 13:56:22.066
        Version 11.2.0.1.0
    HOSGIP for "HS_FDS_TRACE_LEVEL" returned "ON"
    HOSGIP for "HS_OPEN_CURSORS" returned "50"
    HOSGIP for "HS_FDS_FETCH_ROWS" returned "1"
    HOSGIP for "HS_LONG_PIECE_TRANSFER_SIZE" returned "65536"
    HOSGIP for "HS_NLS_NUMERIC_CHARACTER" returned ".,"
    HOSGIP for "HS_KEEP_REMOTE_COLUMN_SIZE" returned "OFF"
    HOSGIP for "HS_FDS_DELAYED_OPEN" returned "TRUE"
    HOSGIP for "HS_FDS_WORKAROUNDS" returned "0"
    HOSGIP for "HS_FDS_MBCS_TO_GRAPHIC" returned "FALSE"
    HOSGIP for "HS_FDS_GRAPHIC_TO_MBCS" returned "FALSE"
    HOSGIP for "HS_FDS_RECOVERY_ACCOUNT" returned "RECOVER"
    HOSGIP for "HS_FDS_TRANSACTION_LOG" returned "HS_TRANSACTION_LOG"
    HOSGIP for "HS_FDS_TIMESTAMP_MAPPING" returned "DATE"
    HOSGIP for "HS_FDS_DATE_MAPPING" returned "DATE"
    HOSGIP for "HS_FDS_CHARACTER_SEMANTICS" returned "FALSE"
    HOSGIP for "HS_FDS_MAP_NCHAR" returned "TRUE"
    HOSGIP for "HS_FDS_RESULTSET_SUPPORT" returned "FALSE"
    HOSGIP for "HS_FDS_RSET_RETURN_ROWCOUNT" returned "FALSE"
    HOSGIP for "HS_FDS_PROC_IS_FUNC" returned "FALSE"
    HOSGIP for "HS_FDS_REPORT_REAL_AS_DOUBLE" returned "FALSE"
    using mpgw as default value for "HS_FDS_DEFAULT_OWNER"
    HOSGIP for "HS_SQL_HANDLE_STMT_REUSE" returned "FALSE"
    SQL text from hgopars, id=1, len=36 ...
         00: 53454C45 43542043 4F554E54 282A2920  [SELECT COUNT(*) ]
         10: 46524F4D 20606D61 696E5F70 61676573  [FROM `main_pages]
         20: 60204131                             [` A1]
    Deferred open until first fetch.
    Performing delayed open.
    SQL text from hgopars, id=1, len=40 ...
         00: 53454C45 43542041 312E6073 75626A65  [SELECT A1.`subje]
         10: 63746020 46524F4D 20606D61 696E5F70  [ct` FROM `main_p]
         20: 61676573 60204131                    [ages` A1]
    Deferred open until first fetch.
    Performing delayed open.
    Please can help me someone.
    Thanks.
    Bianca

    mxallen wrote:
    Bianca,
    If you log directly into MySQL and issue the same query (select "subject" from "main_pages";) what data is returned?
    I looks to me that you count is the number of rows in the entire table "main_pages"
    while you select is for the data in the "subject" column only.
    This seems to indicate that you have just one row in that subject column.
    Regards,
    Matt
    WHAATT?
    What do you mean by "just one row in that subject column"?
    That makes no sense at all.  A row is a row.  A column is a part of a row.  All rows have all columns, though not all columns of all rows will necessarily have an assigned value.  Lacking a WHERE clause to filter rows, any SELECT should return all rows.

  • Select Single * and Select upto one row

    Hi all,
    Can anybody tell me what is difference between Select single * and select upto one row?
    And which one is better?
    Thanks in advance.......

    According to SAP Performance course the SELECT UP TO 1 ROWS is faster than SELECT SINGLE because you are not using all the primary key fields.
    select single is a construct designed to read database records with primary key. In the absence of the primary key, it might end up doing a sequential search, whereas the select up to 1 rows may assume that there is no primary key supplied and will try to find most suitable index.
    The best way to find out is through sql trace or runtime analysis.
    Use "select up to 1 rows" only if you are sure that all the records returned will have the same value for the field(s) you are interested in. If not, you will be reading only the first record which matches the criteria, but may be the second or the third record has the value you are looking for.
    The System test result showed that the variant Single * takes less time than Up to 1 rows as there is an additional level for COUNT STOP KEY for SELECT ENDSELECT UP TO 1 ROWS.
    The 'SELECT SINGLE' statement selects the first row in the database that it finds that fulfils the 'WHERE' clause If this results in multiple records then only the first one will be returned and therefore may not be unique.
    Mainly: to read data from
    The 'SELECT .... UP TO 1 ROWS' statement is subtly different. The database selects all of the relevant records that are defined by the WHERE clause, applies any aggregate, ordering or grouping functions to them and then returns the first record of the result set.
    Mainly: to check if entries exist.
    Select Single is the best one compared to UPto one rows.
    Select Single will get the first record from the table which satisfies the given condition.So it will interact once with the database.
    UTO 1 rows will get the list of the records for the given match and iwll show the first record from the list.So it will take time to get the record.
    SELECT SINGLE VBELN from VBAK
    where MATNR = '1M20'.
    ---Thjis will get the first matched record and will display the record
    SELECT VBELN from VBAK
    where MATNR = '1M20' upto 1 rows.
    ---Thjis will get the list of matched records and will display the first record
    The Major difference between Select Single and Select UPTO 1 rows is The Usage Of Buffer for each.
    Select Single will search for all the satisfied data and bring all that data into Buffer and later it will give to that data to the program.
    Select UPTO 1 Rows will end the search after getting the 1st satisfied record and gives that record to the program.
    Thus Select Single will take much processing time when compare with Select UPTO 1 rows.
    Also
    check these threads..
    Difference between Select Single and Selct upto 1 row
    Difference between Select Single and Select upto 1 row
    Difference between select single and select upto one row
    Difference between 'select single *' and 'select upto 1 rows'
    difference between select single and select up to 1 rows
    regards,
    srinivas
    <b>*reward for useful answers*</b>

  • How to supress a subtotal in a crosstab with one row

    Hi,
    I have a crosstab report with three groupings and subtotals. In one group I only have one row and I want to supress the subtotal for that row. If I try to conditionally supress the subtotal it supresses all of the subtotals for the 3 groupings.  Any ideas?
    Thanks,
    Trish Leppa
    Jonh I. Haas, Inc.

    What I am trying to do is a cash flow report and the first group is 'Starting Cash' it has only one row so I want ot hid the subtotals. This is followed by two other groupings, Cash Receipts and Cash Payments. I'm doing this as a cross tab as the months will vary at runtime.
    I also tried adding the chas group as a calculated item, but I couldn't quite get that to work. I'm open to any other ideas.
    THanks,
    Trish

  • Process sampled data and perform simple calculation to by pass Matlab?

    I have files that contain large number current samples (like 300,000 for example). I need them to performing simple calculations (for example to calculate energy).
    Before, I used Matlab to load all those samples into array and to do all calculations there.
    However... that process is kind of slow. What can I use to simply this and replace Matlab by some script?
    Can I use perl or php to perform this operation on set of sample files to spit out final calculation values into new file?
    Last edited by kdar (2012-05-11 13:21:05)

    I'm surprised no one has suggested numpy and scipy, which are modules for python 2. They have syntax that's similar to mattlab, they're very fast, and python is useful in other circumstances and easy to learn.
    I did something similar for spectral data. Here's an example of what I did in python:
    #!/usr/bin/env python
    #This program goes through rayleigh line data and finde the mean shift
    #in nanometers and the standard deviation
    import sys, os
    import numpy as np
    import scipy as sp
    import scipy.optimize as op
    import time
    ray = []
    filenames = []
    line = 633
    def rs(wavelength,laser):
    return ((float(1)/laser)-(float(1)/wavelength))*(10**7)
    def main(argv): #Goes through a file and finds the peak position of the rayleigh line
    f = np.loadtxt(argv).transpose() #opens the file
    maxi = np.amax(f[1]) #Finds the value of hte peak of the rayleigh line
    intensity = [f[1,i] for i in range(len(f[1]))] #extrants the array into a list
    indi = intensity.index(maxi) #Finds the index of the rayleigh line
    ray.append(f[0,indi])
    filenames.append(str(argv))
    # Goes through each file named in the CLI call and applies the main function to it
    for filename in sys.argv[1:]:
    main(filename)
    # Use numpy for some basic calculations
    mean = np.mean(ray)
    StandardDeviation = np.std(ray)
    median = np.median(ray)
    variance = np.var(ray)
    ramanshift = [rs(ray[i],line) for i in range(len(ray))]
    rsmean = np.mean(ramanshift)
    rsSD = np.std(ramanshift)
    rsmedian = np.median(ramanshift)
    rsvariance = np.var(ramanshift)
    tname = str(time.asctime())
    # Write all calculations to a file
    output = open('rayleigh_'+tname+'.dat','w')
    output.write('#The files used for this compilation are:\n')
    for i in range(len(filenames)):
    output.write('#'+filenames[i]+'\n')
    output.write('The wavelengths of the Rayleigh line are (in nm):\n')
    for i in range(len(ray)):
    output.write(str(ray[i])+'\n')
    output.write('The raman shifts of the rayleigh line for '+str(line)+'nm are (in rel. cm^(-1):\n')
    for i in range(len(ray)):
    output.write(str(ramanshift[i])+'\n')
    output.write('Mean = '+str(mean)+'nm, or '+str(rsmean)+' rel. cm^(-1)\n')
    output.write('Standard Deviation = '+str(StandardDeviation)+' nm, or '+str(rsSD)+' rel. cm^(-1)\n')
    output.write('Median = '+str(median)+'nm or, '+str(rsmedian)+' rel. cm^(-1)\n')
    output.write('Variance = '+str(variance)+'nm or, '+str(rsvariance)+' rel. cm^(-1)\n')
    output.close()
    Last edited by Yurlungur (2012-05-13 21:14:54)

  • On submit perform an insert on one table and an update on aother table

    I am trying to perform and insert on the table one table (the wizard created my form the insert is going against the table that I created using the wizard) and on the form is on field that is also in another table. Therefore, I am trying to perform an update on one attribute of one table and a insert into another table. How do I do this in apex?

    If you have used wizard to create form, then you may see a process of type 'Automatic Row Processing (DML)' in your page which will perform INSERT/UPDATE/DELETE on your form table. Here you can see APEX performs INSERT only when REQUEST is in 'INSERT, CREATE, CREATE_AGAIN, CREATEAGAIN'
    So create one more PL/SQL page process which will execute at 'on Submit after validations' and write update process as follows
    begin
    -- pseudo table/columns
    update tbl_second
    set col1 = :p1_item
    where pk_col = :p1_pk_item;
    end;Make this process conditional so that it will perform UPDATE only when request value is in 'INSERT, CREATE, CREATE_AGAIN, CREATEAGAIN' ( i.e. only when you are inserting into your form table)
    Cheers,
    Hari
    p.s. I think you may also need to update the second table when some-one updates your form table.
    Edited by: Hari_639 on Oct 26, 2009 9:46 AM

Maybe you are looking for

  • Error while saving a version

    Hi , I have susscefully restored and backed up a version but while saving the version in Target environment I get error like. Error message:14090:cannot mark version 740 as deleted.it does not exist in repository. Please advise.

  • External hard drive music folder

    While upgrading to iTunes 6.0.2 I must have done something wrong. iTunes kept giving me the message "The song "xxxxx..." could not be used because the original file could not be found". I have about 10,000 songs on my external HD. I followed the dire

  • UCCE 7.5 Skill group expansion

    I have an issue where I want to queue to a skill group for say 5 mins and then expand it to another skill group or groups.  What is the best way to do this? My thoughts: 1) add skill group to initial queue to node with a consider if statement 2) add

  • Iphone Photo copying issue

    Hi, I am having a problem downloading all my iPhotos to my iPhone 4. I have copied 86 pic to iPhoto but when i upload to my iPhone/itunes it is only copying 20. I did merge a couple of events together to create one file but this hasn't caused issues

  • Which function Group  a smart form belongs to?

    Hello Gurus!! May i know to which function group does the dynamically generated function module of a smart form belong to? Thanks in Advance.