Retrieve next record

Hi there,
I have a query where I pass in a VARCHAR2 (CIPIDI_NR). This Query should return the next higher (or lower) record depending on some conditions. I tried:
select * from TBL_CIPIDI
where confidential_flag = 0
and CIPIDI_NR > (THIS IS WHERE I PASS IN THE VALUE)
Unfortunately this returns all records which are higher than the VALUE I pass in. But I only would like to receive the next record. I am not using a sequence. How would be the best way to approach this.
Thanks a lot
Chris

-- correction: I left out the confidential_flag = 0 in the subquery:
select *
from   TBL_CIPIDI
where  confidential_flag = 0
and    CIPIDI_NR =
       (SELECT MIN (cipidi_nr)
        FROM   tbl_cipidi
        WHERE  confidential_flag = 0
        AND    cipidi_nr > (PASSED IN VALUE))

Similar Messages

  • HCP tcode PA40 Upload program failing to move to next record.

    Dear All
    I have written and upload program for HCM tcode PA40 and the program is fine but only inserting one record and is failing to pick the next records in a loop. I dont know whats the problem i know the process have many screens, please help me, i have tried to research not yet found the answer yet.
    Thank you for your assistance
    Here is my Upload program
    *& Report  ZUPLOADEMPHIRING
    REPORT  ZUPLOADEMPHIRING.
    include bdcrecx1.
    PARAMETERS: p_file TYPE  rlgrap-filename.
               x_endrow TYPE i .
    DATA:  xdate(10).
    DATA: Fullname type string.
    DATA:        x_begrow  TYPE i  VALUE 2,
                x_begcol  TYPE i VALUE 1,
                x_endcol  TYPE i VALUE 17,
                 x_endrow TYPE i VALUE 3.
    TYPES: BEGIN OF t_datatab  ,
            FromDate(10),
            Reasonforaction(2),
            Position(8),
            PersonalArea(4),
            EmployeeGroup(1),
            EmployeeSubGroup(2),
            SubArea(4),
            PayrolArea(2),
            Title(5),
            Lastname(40),
            Firstname(40),
            BirtDate(10),
            Nationality(3),
            Group(1),
            Level(1),
            BankKey(15),
            BankAccount(18),
           END OF t_datatab.
    DATA: BEGIN OF t_datatabfinal OCCURS 0,
            FromDate(10),
            Reasonforaction(2),
            Position(8),
            PersonalArea(4),
            EmployeeGroup(1),
            EmployeeSubGroup(2),
            SubArea(4),
            PayrolArea(2),
            Title(5),
            Lastname(40),
            Firstname(40),
            BirtDate(10),
            Nationality(3),
            Group(1),
            Level(1),
            BankKey(15),
            BankAccount(18),
          END OF t_datatabfinal.
    DATA: BEGIN OF it_record OCCURS 0,
            FromDate(10),
            Reasonforaction(2),
            Position(8),
            PersonalArea(4),
            EmployeeGroup(1),
            EmployeeSubGroup(2),
            SubArea(4),
            PayrolArea(2),
            Title(5),
            Lastname(40),
            Firstname(40),
            BirtDate(10),
            Nationality(3),
            Group(1),
            Level(1),
            BankKey(15),
            BankAccount(18),
            END OF it_record.
    DATA: itab LIKE alsmex_tabline OCCURS 0 WITH HEADER LINE,
    gd_currentrow TYPE i,
    it_datatab TYPE STANDARD TABLE OF t_datatab,
    wa_datatab TYPE t_datatab.
    AT SELECTION-SCREEN on VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'  "
       EXPORTING
         FIELD_NAME          = 'P_FILE '
       IMPORTING
         FILE_NAME           = p_file.
    CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
      EXPORTING
        PROGRAM_NAME        = SYST-REPID
        DYNPRO_NUMBER       = SYST-DYNNR
        FIELD_NAME          = ' '
        STATIC              = ' '
        MASK                = ' '
       CHANGING
         FILE_NAME           =
      EXCEPTIONS
        MASK_TOO_LONG       = 1
        OTHERS              = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    START-OF-SELECTION.
      CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
          filename    = p_file
          i_begin_col = x_begcol
          i_begin_row = x_begrow   "Column header not required
          i_end_col   = x_endcol
          i_end_row   = x_endrow
        TABLES
          intern      = itab.
    Sort table by rows and colums
      SORT itab BY row col.
    Get first row retrieved
      READ TABLE itab INDEX 1.
    Set first row retrieved to current row
      gd_currentrow = itab-row.
      clear: t_datatabfinal.
      refresh t_datatabfinal.
      LOOP AT itab.
      Reset values for next row
        IF itab-row NE gd_currentrow.
          APPEND wa_datatab TO t_datatabfinal.
          CLEAR wa_datatab.
          gd_currentrow = itab-row.
        ENDIF.
        concatenate sy-datum6(2)'.' sy-datum4(2)'.' sy-datum+2(4) into xdate .
        CASE itab-col.
          WHEN '0001'.
            wa_datatab-FromDate  = itab-value.
           concatenate wa_datatab-DocumentDate6(2)'.' wa_datatab-DocumentDate4(2)'.' wa_datatab-DocumentDate+2(4) into wa_datatab-DocumentDate.
          WHEN '0002'.
            wa_datatab-Reasonforaction     = itab-value.
          WHEN '0003'.
            wa_datatab-Position = itab-value.
          WHEN '0004'.
            wa_datatab-PersonalArea    = itab-value.
          WHEN '0005'.
            wa_datatab-EmployeeGroup    = itab-value.
          WHEN '0006'.
            wa_datatab-EmployeeSubGroup   = itab-value.
          WHEN '0007'.
            wa_datatab-SubArea         = itab-value.
          WHEN '0008'.
            wa_datatab-PayrolArea         = itab-value.
          WHEN '0009'.
            wa_datatab-Title         = itab-value.
          WHEN '0010'.
            wa_datatab-Lastname         = itab-value.
          WHEN '0011'.
            wa_datatab-Firstname         = itab-value.
          WHEN '0012'.
            wa_datatab-BirtDate         = itab-value.
          WHEN '0013'.
            wa_datatab-Nationality         = itab-value.
          WHEN '0014'.
            wa_datatab-Group         = itab-value.
          WHEN '0015'.
            wa_datatab-Level         = itab-value.
          WHEN '0016'.
            wa_datatab-BankKey         = itab-value.
          WHEN '0017'.
            wa_datatab-BankAccount         = itab-value.
          WHEN OTHERS.
        ENDCASE.
       APPEND    wa_datatab to t_datatabfinal.
      ENDLOOP.
      clear: it_record.
      refresh it_record.
      loop at t_datatabfinal into it_record.
        append it_record.
      endloop.
      perform open_group.
      loop at it_record.
        concatenate it_record-Firstname it_record-Lastname into Fullname separated by space.
        perform bdc_dynpro      using 'SAPMP50A' '2000'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'T529T-MNTXT(02)'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=PICK'.
        perform bdc_field       using 'RP50G-EINDA'
                                      it_record-FromDate. "" '01012012'.
        perform bdc_field       using 'RP50G-SELEC(02)'
                                      'X'.
        perform bdc_dynpro      using 'MP000000' '2000'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'PSPAR-PERSG'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=UPD'.
        perform bdc_field       using 'P0000-BEGDA'
                                      it_record-FromDate. "" '01.01.2012'.
        perform bdc_field       using 'P0000-ENDDA'
                                      '31.12.9999'.
        perform bdc_field       using 'P0000-MASSN'
                                      'ZB'.
        perform bdc_field       using 'P0000-MASSG'
                                      it_record-Reasonforaction. "" '01'.
        perform bdc_field       using 'PSPAR-PLANS'
                                      it_record-Position. "" '99999999'.
        perform bdc_field       using 'PSPAR-WERKS'
                                      it_record-PersonalArea.   " 'm003'.
        perform bdc_field       using 'PSPAR-PERSG'
                                      it_record-EmployeeGroup. "" 'a'.
        perform bdc_field       using 'PSPAR-PERSK'
                                      it_record-EmployeeSubGroup. "" '02'.
        perform bdc_dynpro      using 'MP000100' '2000'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'P0001-BTRTL'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=UPD'.
        perform bdc_field       using 'P0001-BEGDA'
                                      it_record-FromDate. ""'01.01.2012'.
        perform bdc_field       using 'P0001-ENDDA'
                                      '31.12.9999'.
        perform bdc_field       using 'P0001-BTRTL'
                                      it_record-SubArea.        "" 'mm01'.
        perform bdc_field       using 'P0001-ABKRS'
                                       it_record-PayrolArea.    "" 'Z2'.
        perform bdc_field       using 'P0001-PLANS'
                                      it_record-Position. ""'99999999'.
        perform bdc_dynpro      using 'MP000200' '2000'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'P0002-NATIO'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=UPD'.
        perform bdc_field       using 'P0002-BEGDA'
                                      it_record-FromDate. ""'01.01.2012'.
        perform bdc_field       using 'P0002-ENDDA'
                                      '31.12.9999'.
        perform bdc_field       using 'Q0002-ANREX'
                                      it_record-Title. "" 'Mr'.
        perform bdc_field       using 'P0002-NACHN'
                                      it_record-Lastname. " 'maxwel'.
        perform bdc_field       using 'P0002-VORNA'
                                      it_record-Firstname. "" 'razaro'.
        perform bdc_field       using 'P0002-GBDAT'
                                      it_record-BirtDate. "" '01011970'.
        perform bdc_field       using 'P0002-SPRSL'
                                      'EN'.
        perform bdc_field       using 'P0002-NATIO'
                                       it_record-Nationality. "" 'ZW'.
        perform bdc_dynpro      using 'MP000700' '2000'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'P0007-BEGDA'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'P0007-BEGDA'
                                      it_record-FromDate."" '01.01.2012'.
        perform bdc_field       using 'P0007-ENDDA'
                                      '31.12.9999'.
        perform bdc_field       using 'P0007-SCHKZ'
                                      'MANORM'.
        perform bdc_field       using 'P0007-ZTERF'
                                      '9'.
        perform bdc_field       using 'P0007-EMPCT'
                                      '  100,00'.
        perform bdc_dynpro      using 'MP000700' '2000'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'P0007-BEGDA'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=UPD'.
        perform bdc_field       using 'P0007-BEGDA'
                                      it_record-FromDate.""'01.01.2012'.
        perform bdc_field       using 'P0007-ENDDA'
                                      '31.12.9999'.
        perform bdc_field       using 'P0007-SCHKZ'
                                      'MANORM'.
        perform bdc_field       using 'P0007-ZTERF'
                                      '9'.
        perform bdc_field       using 'P0007-EMPCT'
                                      '  100,00'.
        perform bdc_field       using 'P0007-ARBST'
                                      '    8,00'.
        perform bdc_field       using 'P0007-WKWDY'
                                      '    5,00'.
        perform bdc_dynpro      using 'MP000800' '2000'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'P0008-TRFST'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=UPD'.
        perform bdc_field       using 'P0008-BEGDA'
                                      it_record-FromDate. "" '01.01.2012'.
        perform bdc_field       using 'P0008-ENDDA'
                                      '31.12.9999'.
        perform bdc_field       using 'P0008-TRFAR'
                                      '01'.
        perform bdc_field       using 'P0008-BSGRD'
                                      '100,00'.
        perform bdc_field       using 'P0008-TRFGB'
                                      '01'.
        perform bdc_field       using 'P0008-TRFGR'
                                       it_record-Group. ""'a'.
        perform bdc_field       using 'P0008-TRFST'
                                       it_record-Level.         "" '1'.
       perform bdc_field       using 'P0008-DIVGV'
                                     '173,00'.
        perform bdc_field       using 'P0008-ANCUR'
                                      'USD'.
        perform bdc_field       using 'Q0008-IBBEG'
                                      xdate.""'12.01.2012'.
        perform bdc_field       using 'P0008-WAERS'
                                      'USD'.
        perform bdc_dynpro      using 'MP000900' '2000'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'P0009-ZLSCH'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=UPD'.
        perform bdc_field       using 'P0009-BEGDA'
                                      it_record-FromDate. ""'01.01.2012'.
        perform bdc_field       using 'P0009-ENDDA'
                                      '31.12.9999'.
        perform bdc_field       using 'P0009-BNKSA'
                                      '0'.
        perform bdc_field       using 'Q0009-EMFTX'
                                      Fullname. "" 'maxwel razaro'.
        perform bdc_field       using 'P0009-BANKS'
                                      'ZW'.
        perform bdc_field       using 'P0009-BANKL'
                                       it_record-BankKey.       ""'10351'.
        perform bdc_field       using 'P0009-BANKN'
                                       it_record-BankAccount. "" '543234667778'.
        perform bdc_field       using 'P0009-ZLSCH'
                                      'b'.
        perform bdc_field       using 'P0009-WAERS'
                                      'USD'.
        perform bdc_dynpro      using 'SAPMP50A' '2000'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/EBCK'.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RP50G-PERNR'.
        perform bdc_transaction using 'PA40'.
      endloop.
      perform close_group.
    Regards
    William

    Hi,
    It seems like you are uploading data to a screen that contains table control.just check the link below for your reference
    [http://wiki.sdn.sap.com/wiki/display/ABAP/bdcontable+control]
    Regards,
    Vamshi
    Edited by: vamshi reddy . ch on Jan 13, 2012 7:38 AM
    Edited by: vamshi reddy . ch on Jan 13, 2012 7:39 AM

  • Analytic query to select next record

    Hi all,
    I would like to query the below two table match to ouput.
    1.dev_wt 2.dev_map 3.Output Result
    To help more clearance please see this image link : http://lh6.ggpht.com/_xL6eBqjW6Yo/TEqnSvlF_FI/AAAAAAAAB0U/i2sclnnaj6g/Untitled-3.jpg
    1. dev_wt
    PMS_COMP     PMS_I       PMS_PERF_D   PMS_WT   PMS_CREATION_D
    BBOARD     GICEQGROSS    04/01/2001     30     04/05/2001
    BBOARD     GICST_B       04/01/2001     5      04/05/2001
    BBOARD     SBGS_B        04/01/2001     65     04/05/2001
    BBOARD     GICEQGROSS    04/11/2001     30     04/15/2001
    BBOARD     GICST_B       04/11/2001     5      04/15/2001
    BBOARD     SBGS_B        04/11/2001     65     04/15/20012. dev_map
    GS_CODE     GS_I_CODE    GS_I_ID  MD_ID   GS_START_DT    GS_END_DT
    GICEQGROSS   CIWL        304       15     01/04/1998     31/03/2004
    GICEQGROSS   CIWL        304       2     01/04/2004      31/03/9998
    GICST_B      GICST_B     3707      15     01/04/2000     31/12/9998
    SBGS_B       SBGS_B      2231      15     01/04/1992     30/09/2003
    SBGS_B       SBGS_B      564       15     01/10/2003     31/12/9998I would like to match PMS_I = GS_CODE to retrieve GS_I_CODE and using analytic
    query to find next record.
    Because I need to select GICEQGROSS record of PMS_PERF_D date and next
    GICEQGROSS record of PMS_PERF_D from dev_wt table and put GS_WT_FR and GS_WT_TO of Output result.
    ***Date is change to YYYYMMDD format
    ***PMS_WT is devided by 100
    *3. Output Result*
    GS_I_ID    PMS_COMP     GS_I_CODE     GS_WT_FR     GS_WT_TO     GS_I_CALC
    304       BBOARD        CIWL          20010401     20010410     0.3
    3707      BBOARD        GICST_B       20010401     20010410     0.05
    5209      BBOARD        SBGS_B        20010401     20010410     0.65PMS_COMP is from dev_wt table
    GS_I_CODE is from dev_map table join with dev_wt
    GS_WT_FR is from dev_wt table of GS_START_DT
    GS_WT_TO is from dev_wt table of next record GS_START_DT where PMS_I ='GICEQGROSS'
    Now my difficulty is to select next record of PMS_PERF_D using analytic query. Below
    is my query...
    SELECT GS_I_ID, PMS_COMP, GS_I_CODE, GS_WT_FR, GS_WT_TO, GS_I_CALC
    FROM dev_wt (
    SELECT lead(PMS_PERF_D) over(partition by PMS_I order by PMS_PERF_D) as GS_WT_TO       
    FROM dev_wt where PMS_I ='GICEQGROSS')
    left join dev_map on PMS_I = GS_CODE ;Thanks
    Edited by: WinZone on Jul 24, 2010 4:46 PM
    Edited by: WinZone on Jul 24, 2010 4:50 PM

    Hi,
    This query should be fine:
    SELECT DISTINCT t2.gs_i_id, pms_comp, t2.gs_i_code,
                    TO_CHAR
                       (MIN (pms_perf_d) OVER (PARTITION BY pms_comp, pms_i),
                        'yyyymmdd'
                       ) gs_wt_fr,
                    TO_CHAR
                       (MAX (pms_perf_d) OVER (PARTITION BY pms_comp, pms_i) - 1,
                        'yyyymmdd'
                       ) gs_wt_to,
                    pms_wt / 100 gs_i_calc
               FROM dev_wt t1, dev_map t2
              WHERE t2.gs_code = t1.pms_iREM Same remark as odie: should be "2231" instead ...

  • How to access next record from database on to form

    hi
    i have written the following piece of code to retrieve data from database oon to form...
    Try
                rset = oDICompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
                query = "Select * from [@TEST]  where Code =  ('" + oform.Items.Item("6").Specific.value + "') "
                rset.DoQuery(query)
            Catch ex As Exception
                SBO_Application.MessageBox(ErrorToString)
            End Try
            '  oform.Items.Item("6").Specific.value = rset.Fields.Item("Code").Value
            oform.Items.Item("7").Specific.value = rset.Fields.Item("Name").Value
            oform.Items.Item("8").Specific.value = rset.Fields.Item("U_Sal").Value
    but i can see only one record on my form controls.... i have placed on more button called " Next" so that i can access next records from DB when i click on "Next" button...
    Public Sub NextRecords()
    Try
         rset.MoveFirst()
                While Not rset.EoF
                 '   oform.Items.Item("6").Specific.value = rset.Fields.Item("Code").Value
                   oform.Items.Item("7").Specific.value = rset.Fields.Item("Name").Value
                  oform.Items.Item("8").Specific.value = rset.Fields.Item("U_Sal").Value
                   rset.MoveNext()
                End While
                rset.MoveNext()
          Catch ex As Exception
               SBO_Application.MessageBox(ErrorToString)
          SBO_Application.MessageBox("Updated")
           End Try
    End sub
    i'm not able to access next records...
    plz provide me the solution and code for this how to handle this scenario....

    From your question and code sample given, I think the problem is you are seeing only the last record when pressing the next button.
    In the Next button press, you are coded such a way that it will populate the last record.
    Try removing the do..While.. loop and simply code like
    if Not rset.EoF
    rset.MoveNext()
       oform.Items.Item("6").Specific.value = rset.Fields.Item("Code").Value
       oform.Items.Item("7").Specific.value = rset.Fields.Item("Name").Value
       oform.Items.Item("8").Specific.value = rset.Fields.Item("U_Sal").Value
    end if
    So when you click next, you can see the next record. Not the last record.
    Anoop

  • Retrieving 10 records per page

    hi,
    i would like to have the source code for retrieving 10 records per page in jsp. I have a huge resultset and i would like to display 10 records per page.
    your help is highly appreciated.
    regards
    andrew

    hi,
    i would like to have the source code for retrieving 10
    records per page in jsp. I have a huge resultset and
    i would like to display 10 records per page.
    your help is highly appreciated.
    regards
    andrewHey Andrew, this code will help you out. Essentially the pseudocode to do what you want is below. Let's say your jsp is called dbresults.jsp
    Get total number of results from query result set
    If page is called with no index number of current record to display
    Display the records from 0 until a max of ten counting how many we display and keeping track of the current record number.
    end if
    else
    Display the records up to a max of ten from the index number we received in the query
    end else
    tempvar_a is the current number of records displayed minus 10 records and minus the amount of records displayed on this page.
    If tempvar > 0
    Display a previous button with the a href as dbresults.jsp?index=tempvar value
    end if
    else if current record index < total record count
    then there are more records to display so make a next button with an href of dbresults.jsp?index=value of current record number plus one
    end else
    One caveat is that getting the index number in the beginning of the JSP as:
    request.getParameter("VIEWEDROWS");
    will return a string that we have to convert to an int since you will be adding and comparing to this number so do:
    String TEMPVIEWEDROWS = request.getParameter("VIEWEDROWS");
    int VIEWEDROWS = 0;
    if (TEMPVIEWEDROWS != null) {
    VIEWEDROWS = Integer.parseInt(TEMPVIEWEDROWS);

  • T-SQL: Cursor is not advancing to next record

    SQL Version:  2008 R2
    Problem:  I have the code below which uses a cursor.  The cursor keeps returning the first record and does not advance to the next record in the cursor.  It appears as if the Fetch Next is not being recognized.  The Select
    Statement in the cursor declaration returns two records which is the result set I expect to be contained in the cursor record set.
    ...bob sutor
    SQL CODE:
    DECLARE
      @ProcessGroupID nchar(4)
     , @RemoveAuditUser nchar(128)
    DECLARE CertGroupCursor CURSOR FOR
     SELECT DISTINCT CertGroups.GroupCode, CertGroups.RemoveAuditUser
         --, UserControl.ProcessGroupID, UserControl.VPUserName
     FROM udCertGroups AS CertGroups
      LEFT JOIN udAuditUsers AS UserControl
      ON CertGroups.GroupCode = UserControl.ProcessGroupID
     WHERE CertGroups.GroupCode = UserControl.ProcessGroupID
      AND CertGroups.RemoveAuditUser = UserControl.VPUserName
    OPEN CertGroupCursor
     FETCH NEXT FROM CertGroupCursor INTO @ProcessGroupID, @RemoveAuditUser
     WHILE @@FETCH_STATUS = 0
     Print @ProcessGroupID + '-' + @RemoveAuditUser
     DELETE FROM udAuditUsers
      WHERE ProcessGroupID = @ProcessGroupID
       AND VPUserName = @RemoveAuditUser
     FETCH NEXT FROM CertGroupCursor INTO @ProcessGroupID, @RemoveAuditUser
    CLOSE CertGroupCursor
    DEALLOCATE CertGroupCursor
    Bob Sutor

    The real question is how to get rid of this mess. Think about the local “@remove_audit_user” as a variable; it's name is a verb, not a noun! and the NVARCHAR(n) lets you use Chinese Unicode. Why? In ISO-11179 rules , “remove_” is a called a role, and the
    audit user would be the attribute with the attribute property “_user” in a valid data model. Where is the table that models “audit_users”? It has to be here by definition. 
    One of the first rules of data modeling is that a data element has one and only one name. This is a results of the Law of Identity in Logic (A is A: to be is to be something in particular, to be nothing in particular or many things in general is to be nothing
    at all). 
    So how did “G.remove_audit_user = U.vp_user_name” occur??  ANSWER: lack of a design!
    Your “G.group_code = U.process_group_id” is wrong. An identifier is not a code! TOTALLY DIFFERENT type of data elements! Do you have a postal code or a postal id? Blood_type or blood_id?  Etc.? Have you ever read a book on basic data modeling? 
    The purpose of PRINT is debugging and not output. We had  joke in the ANSI X3H2 Committee that SQL means “scarcely Qualified as a Language” because there is no I/O. PRINT will screw up performance in so many ways. 
    In a properly designed schema, we seldom use SELECT DISTINCT; we have keys and a valid schema that does not produce redundant duplicate rows. It might be valid, but after 30+ years of SQL, I would bet against it. 
    Your statement would use an EXISTS() predicate to handle multiple columns and conditions. But you did not bother with DDL, as required by basic Netiquette, so here is the skeleton I can give you. 
    DELETE FROM UD_Audit_Users
     WHERE EXIST
           (SELECT *
              FROM UD_Cert_Groups AS G
             WHERE G.process_group_id = ?? 
               AND G.vp_user_name = ??;
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Retrieve All records and display in Report using CAML query in Report Builder if Parameter value is blank

    Hello Experts,
    i have created a report where i have one parameter field where user will pass parameter(e.g. EmpId). As per parameter record will fetched to report if no parameter is passed then it will display all records. I have done it by taking SqlServer Database as datasource.
    by using Following method
    Now i would like to do it by taking Sharepoint List as Datasource. For that what would be the CAML Query.
    Here is my existing CAML query.
    <RSSharePointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <ListName>Employees</ListName>
      <ViewFields>
        <FieldRef Name="Title" />
        <FieldRef Name="FirstName" />
        <FieldRef Name="LastName" />
        <FieldRef Name="FullName" />
        <FieldRef Name="UserName" />
        <FieldRef Name="Company" />
      </ViewFields>
      <Query>
        <Where>  
    <Eq> 
        <FieldRef Name="Title" />
      <Value Type="Text">    
       <Parameter Name="EmployeeId"/>    
    </Value>
    </Eq>                  
        </Where>
      </Query>
    </RSSharePointList>
    The above code is working if i am passing an employeeId to Parameter. If nothing is passed, it is Not retrieving any record.
    Please suggest
    Thank you
    saroj
    saroj

    Your problem follows the well-established pattern of using an "All" parameter filter in SSRS. There are a few approaches depending on the size of your data. The easiest one is to return all data from CAML and then filter it within SSRS, the following thread
    provides some examples,
    http://stackoverflow.com/questions/18203317/show-all-records-some-records-based-on-parameter-value.
    Other options include passing all of the possible values within the CAML query when "All" is selected, using multiple Report Files to distinguish between both CAML queries, or to use multiple datasets with some logic to show/hide the correct one.
    Dimitri Ayrapetov (MCSE: SharePoint)

  • See my problem no master record move to next record

    hi master
    sir
    i have master detail block master table have all data but detail no data i need feed data in detail then i goto in detail block write value and press F10 for save
    for new record in detail
    in detail blick post-block or post_record or post_insert event i write this code
    go_block('masterblock');
    next_record;
    go_item('detailblock.item');
    but not responses no master block move to next record still and my curser sitll in last postion
    sir how i move master record after save the detail record and jump to detail block for new record
    please give me idea or code
    thanking you
    aamir

    thank for reply
    sir your help very usefull for my but when i press F10 then system show massage do you want to save change the record
    sir how i avoid that window and directly move to next record
    please give me idea
    thanking you
    aamir

  • My code not give me result and error for move to next record please see

    hi master
    sir i import this file also
    import javax.faces.event.ValueChangeEvent;
    then my error remove
    i am use this code in button event
    getMfatableDataProvider().cursorNext();
    form1.discardSubmittedValues("virtualForm1");
    and my textField is bounded with data provider table field
    please give me idea how i show next rocord in page when user press button
    thank's
    aamir

    thank for reply
    sir your help very usefull for my but when i press F10 then system show massage do you want to save change the record
    sir how i avoid that window and directly move to next record
    please give me idea
    thanking you
    aamir

  • Retrieve the records based on date where date is not stored

    Hi,
    I have one table in Oracle.
    I want to retrieve the records which are added or modified after a particular date & time.(but the table does not contain any column for date & time )
    For example: Product table(pid number,pname varchar2)
    i am entering 10 records on date 21/07/2005
    i am entering 20 records on date 22/07/2005
    i am entering 15 records on date 23/07/2005
    i am entering 30 records on date 24/07/2005
    If i want to retrieve the records added after 22/7/2005
    (ie.) last 45 records
    But the table does not contain any date field.
    How will you know date & time of each record updated in the table.
    If any one knows, help me.
    bye.

    for 9iR2: check out online document of Oracle9i Application Developer's Guide - Fundamentals and search flash back query
    http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96590/adg08sql.htm#10851
    for 10G, flash back feature is enhenced to whole database level, you can still use flash back query though.

  • Conditional Sum and look at next record

    First off, here is an example XML structure
    &lt;DATASET&gt;
    &lt;DATASET_ROW&gt;
    &lt;DEPARTMENT&gt;1&lt;/DEPARTMENT&gt;
    &lt;FEE&gt;30&lt;/FEE&gt;
    &lt;DIVISION&gt;Displayed Title&lt;/DIVISION&gt;
    &lt;/DATASET_ROW&gt;
    &lt;DATASET_ROW&gt;
    &lt;DEPARTMENT&gt;1&lt;/DEPARTMENT&gt;
    &lt;FEE&gt;20&lt;/FEE&gt;
    &lt;DIVISION&gt;Displayed Title2&lt;/DIVISION&gt;
    &lt;/DATASET_ROW&gt;
    &lt;DATASET_ROW&gt;
    &lt;DEPARTMENT&gt;1&lt;/DEPARTMENT&gt;
    &lt;FEE&gt;40&lt;/FEE&gt;
    &lt;DIVISION&gt;Displayed Title3&lt;/DIVISION&gt;
    &lt;/DATASET_ROW&gt;
    &lt;DATASET_ROW&gt;
    &lt;DEPARTMENT&gt;2&lt;/DEPARTMENT&gt;
    &lt;FEE&gt;30&lt;/FEE&gt;
    &lt;DIVISION&gt;Displayed Title 5&lt;/DIVISION&gt;
    &lt;/DATASET_ROW&gt;
    &lt;DATASET_ROW&gt;
    &lt;DEPARTMENT&gt;2&lt;/DEPARTMENT&gt;
    &lt;FEE&gt;80&lt;/FEE&gt;
    &lt;DIVISION&gt;Displayed Title 6&lt;/DIVISION&gt;
    &lt;/DATASET_ROW&gt;
    &lt;DATASET_ROW&gt;
    &lt;DEPARTMENT&gt;3&lt;/DEPARTMENT&gt;
    &lt;FEE&gt;90&lt;/FEE&gt;
    &lt;DIVISION&gt;Displayed Title 7&lt;/DIVISION&gt;
    &lt;/DATASET_ROW&gt;
    &lt;DATASET_ROW&gt;
    &lt;DEPARTMENT&gt;3&lt;/DEPARTMENT&gt;
    &lt;FEE&gt;90&lt;/FEE&gt;
    &lt;DIVISION&gt;Displayed Title 8&lt;/DIVISION&gt;
    &lt;/DATASET_ROW&gt;
    &lt;DATASET_ROW&gt;
    &lt;DEPARTMENT&gt;4&lt;/DEPARTMENT&gt;
    &lt;FEE&gt;30&lt;/FEE&gt;
    &lt;DIVISION&gt;Displayed Title 9&lt;/DIVISION&gt;
    &lt;/DATASET_ROW&gt;
    &lt;/DATASET&gt;
    Is there any way to get a sum of a field grouped by two different fields? Example in my RTF I have a repeating group based on DIVISION which inserts section breaks. Using the example I have posted here what I have in my RTF template is a sum of FEE (assume there are multiple records for DIVISION though only 1 is shown here) that displays on every page for the current group. Each DIVISION is printed on its own page. However, at the end of each DEPARTMENT, I also need to print a summary total of the sum of FEE over all records for that DEPARTMENT on the same page as the last page of the last DIVISION.
    So far, I have been able to get it to do the subtotals for each DEPARTMENT as they are within the scope of my loop. The tricky part I am unsure of how best to go about doing is getting and displaying the conditional grand total. My initial idea was to use a variable and do it manually in my template but then I relaized I did not know how to find out if the next record was the first record in the next Department or not. In this case, I am hoping to stick within the realm of using straight SQL Query as my datasource because its already done. The other option I considered was nested loops and a data template but then I realized that I wasn't too sure about manually inserting the section breaks.
    Any thoughts?

    Yes, you can do that,
    Pass me the template and XML :)
    <?if:position() = last()?>
    Last Record
    <? end if ?>
    then display the sub-total for department at the last division.
    This link , gives you idea of , how to display at the last
    http://blogs.oracle.com/xmlpublisher/2008/08/continued.html
    Use
    xdofo:inline-total display-condition="last"

  • I am using the database connectivity toolkit to retrieve data using a SQL query. The database has 1 million records, I am retrieving 4000 records from the database and the results are taking too long to get, is there any way of speeding it up?

    I am using the "fetch all" vi to do this, but it is retrieving one record at a time, (if you examine the block diagram) How can i retrieve all records in a faster more efficient manner?

    If this isn't faster than your previous method, then I think you found the wrong example. If you have the Database Connectivity Toolkit installed, then go to the LabVIEW Help menu and select "Find Examples". It defaults to searching for tasks, so open the "Communicating with External Applications" and "Databases" and open the Read All Data. The List Column names just gives the correct header to the resulting table and is a fast operation. That's not what you are supposed to be looking at ... it's the DBTools Select All Data subVI that is the important one. If you open it and look at its diagram, you'll see that it uses a completely different set of ADO methods and properties to retrieve all the data.

  • How to implement JSF text input down-arrow key = next record navigation?

    Hi All,
    I've got a small query which you experts might be able to help me through. I would not be surprised if such questions would already have been raised in this forum.
    Formerly, I've created an Oracle Form that allow user to quickly insert data in bulk. It only has three 3 fields - first name, second name and address. Because of the flexibility of the Oracle Form, by pressing the down arrow key, user is able to create record when the last record is detected. And vice versa by hitting the up arrow key, it will move to the previous record when the current record is not the first record. So basically, the form is very 'key-driven' and without the use of the mouse, a lot of data can be inserted very quickly and efficiently.
    I've successfully converted such form to an ADF BC JSF page using the JHeadstart toolkit. But when I showed it to my users for comment, they were really disappointed with the number of mouse interactions they need to click every time to navigate between records as well as creating new records. My question is can I build some sort of ADF JSF event handler on any of the text items to perform the following tasks:
    1.) When 'down arrow key' is pressed AND not the last record THEN
    Go to the next record.
    2.) When 'down arrow key' is pressed AND is the last record THEN
    Go to the next blank record.
    3.) When 'up arrow key' is pressed AND not the first record THEN
    Go to the previous record.
    4.) When 'up arrow key' is pressed AND is the first record THEN
    Do nothing.
    If all the four above tasks are achievable in ADF JSF, can you please guide and brief me on the steps to implement them. Or these functionalities are already available somewhere in other open source toolkits. Your help is much appreciated. Thank you and have a nice day.
    Kind Regards,
    John

    Hi Steven,
    I've tried to incoporated attached link's codes with the JHeadstart generated code inside the jspx but I still cannot get it to work. There is a lot of Javascript error and is impossible to debug.
    Regards,
    John

  • Database hangs after retrieving some records....

    hi,
    I create a two level B+-tree index, for the first level i'm using key as logical database name, for the second level B+-tree i'm using some other field in my data. I am retrieving the records based on logical database name. I am using C++ to implement my index.
    In the following code i'm retrieving records from database. Program is behaving differently for different logical database names. For example in my database i have around 4 lakhs records with logical database name 'A' and around 1 lakh of records with logical database name 'B'. The following code displays all B records but programs hangs after retrieving some A records.
    I'm using PAGE_SIZE=8192, numBuffers=2048, and runnig in Fedora Core3.
    DbEnv myEnv(0);
         myEnv.set_cachesize(0, PAGE_SIZE * numBuffers, 0);
         myEnv.set_data_dir("/home/raviov/new/database");
              try {
                   myEnv.open("./", DB_CREATE | DB_INIT_MPOOL, 0);
              catch (DbException &e) {
                   cerr << "Exception occurred: " << e.what() << endl;
                   exit(1);
              db=new Db(&myEnv,0);
              db->set_pagesize(PAGE_SIZE);     
              db->set_bt_compare(compare_int);
         dbname=itoa(p);
         try
         db->open(NULL,
                   "treedb.db",
                   dbname,
                   DB_BTREE,
                   0,
                   0);
         catch(DbException &e)
              cerr << "Failed to open DB object" << endl;
              exit(1);
         db->cursor(NULL,&cursorp,0);
         key=new Dbt();
         data=new Dbt();
         while(ret=(cursorp->get(key,data,DB_NEXT))==0)
              j=*((int*)key->get_data());
              q=(*((struct tuple*)data->get_data())).startPos;
              r=(*((struct tuple*)data->get_data())).endPos;
              s=(*((struct tuple*)data->get_data())).level;
              cout<<"position : "<<j<<"\t";
              cout<<"start : "<<q<<"\t";
              cout<<"end : "<<r<<"\t";
              cout<<"level : "<<s<<"\n";
         if(ret==DB_NOTFOUND)
              cout<<"no records";
              exit(1);
         if(cursorp!=NULL)
              cursorp->close();
         try
              db->close(0);
         catch(DbException &e)
              cerr << "Failed to close DB object" << endl;
              exit(1);
         myEnv.close(0);

    HI Andrei,
    thank you for giving reply, I'm not using any secondary indecies, subdatabases and not using any threads.
    the following code displays index...
    #include <stdio.h>
    #include <db_cxx.h>
    #include <iostream.h>
    #include <db.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/types.h>
    int PAGE_SIZE=8192;
    int numBuffers=2048;
    char *itoa(const int x)
          char buf[100];
          snprintf(buf, sizeof(buf), "%d", x);
           return strdup(buf);
    int compare_int(Db dbp, const Dbt a, const Dbt *b)
      int ai;
      int bi;
      memcpy(&ai,a->get_data(),sizeof(int));
      memcpy(&bi,b->get_data(),sizeof(int));
      return(ai-bi);
    struct tuple
           int startPos;
           int endPos;
           int level;
    main()
         FILE *fp;
         int i,j,k,l,m,n,total=0;
         char dbname[500],filename[500],str [500];
         tuple t;
         Db *db;
         Dbt key,data;
         DbEnv myEnv(0);
         myEnv.set_cachesize(0, PAGE_SIZE * numBuffers, 0);
         try {
                myEnv.open("/home/raviov/Desktop/example", DB_CREATE | DB_INIT_MPOOL, 0);
           catch (DbException &e) {
                  cerr << "Exception occurred: " << e.what() << endl;
                  exit(1);
         for(n=0;n<=84;n++)
              db = new Db(&myEnv, 0);     // Instantiate the Db object
                    db->set_bt_compare(compare_int);
               db->set_pagesize(PAGE_SIZE);
              strcpy(filename,"/home/raviov/Desktop/GTCReport/code/sequence/splitter/tree/");
              strcat(filename,itoa(n));
              fp=fopen(filename,"r");
              if(fp==NULL)
                   cout<<"error in opening the file";
                   exit(0);
              while(fgets (str , 500 , fp)!=NULL)
                   sscanf(str,"%d(%d,%d,%d,%d)",&i,&j,&k,&l,&m);
                   key=new Dbt(&i,sizeof(int));
                   if(total==0)
                        strcpy(dbname,itoa(j));
                   t.startPos=k;
                   t.endPos=l;
                   t.level=m;
                   data=new Dbt(&t,sizeof(t));     
                   if(total==0)
                        try
                             db->open(NULL,
                             "tree.db",
                                       dbname,
                              DB_BTREE,
                                DB_CREATE,
                                0);
                        catch(DbException &e)
                               cerr << "Failed to create DB object" << endl;
                             exit(1);
                        total=99;
                   int ret=db->put(NULL,key,data,DB_NOOVERWRITE);
                   if(ret==DB_KEYEXIST)
                        cout<<"key already exist\n";
                        exit(1);
                   delete key;
                   delete data;
              total=0;
              fclose(fp);
              try
                   db->close(0);
              catch(DbException &e)
                     cerr << "Failed to close DB object" << endl;
                   exit(1);
         myEnv.close(0);
    }The following code retrieves the records from database that we had built above...
    #include <stdio.h>
    #include <db_cxx.h>
    #include <iostream.h>
    #include <db.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/types.h>
    int PAGE_SIZE=8192;
    int numBuffers=2048;
    char *itoa(const int x)
          char buf[100];
          snprintf(buf, sizeof(buf), "%d", x);
           return strdup(buf);
    int compare_int(Db dbp, const Dbt a, const Dbt *b)
      int ai;
      int bi;
      memcpy(&ai,a->get_data(),sizeof(int));
      memcpy(&bi,b->get_data(),sizeof(int));
      return(ai-bi);
    struct tuple
           int startPos;
           int endPos;
           int level;
    main()
         FILE *fp;
         int i,j,k,l,m,n,total=0;
         char *dbname;
         char filename[200],str [100];
         tuple t;
         Db *db;
         Dbt key,data;
         Dbc *cursorp=NULL;
         int ret,x=4;
         char *ravi;
         int p=84763;
         int y=2134872;
         int r,s,q,count=0;
         DbEnv myEnv(0);
         myEnv.set_cachesize(0, PAGE_SIZE * numBuffers, 0);
         myEnv.set_data_dir("/home/raviov/new/database");
              try {
                      myEnv.open("./", DB_CREATE | DB_INIT_MPOOL, 0);
               catch (DbException &e) {
                      cerr << "Exception occurred: " << e.what() << endl;
                      exit(1);
              db=new Db(&myEnv,0);
              db->set_pagesize(PAGE_SIZE);     
              db->set_bt_compare(compare_int);
         dbname=itoa(p);
         try
              db->open(NULL,
                    "tree.db",
                     dbname,
                     DB_BTREE,
                     0,
                     0);
         catch(DbException &e)
                cerr << "Failed to open DB object" << endl;
              exit(1);
         db->cursor(NULL,&cursorp,0);
         key=new Dbt();
         data=new Dbt();
         while(ret=(cursorp->get(key,data,DB_NEXT))==0)
              j=*((int*)key->get_data());
              q=(*((struct tuple*)data->get_data())).startPos;
              r=(*((struct tuple*)data->get_data())).endPos;
              s=(*((struct tuple*)data->get_data())).level;
              cout<<"position   : "<<j<<"\t";
              cout<<"start : "<<q<<"\t";
              cout<<"end   : "<<r<<"\t";
              cout<<"level   : "<<s<<"\n";
              delete key;
              delete data;
         if(ret==DB_NOTFOUND)
              cout<<"no records";
              exit(1);
         if(cursorp!=NULL)
              cursorp->close();
         try
              db->close(0);
         catch(DbException &e)
                cerr << "Failed to close DB object" << endl;
              exit(1);
         myEnv.close(0);     
    }

  • Previous and next records in a table

    Let's say I have a table where I have
    item name sequence customer number
    I want to select these three fields where name = 'INSPECTION', but I'd also like to grab the record prior to this and the record after this, regardless of the name content. I need to do it for each customer number.
    Is it possible for a novice like me to do?
    Thank you

    What is "next record" and "previous record" for you in this context? A database table doesn't have records in any specific order. They have an arbitrary order.
    If for you, the records have the sequence as an ordering information, then you could use LAG and LEAD functions.

Maybe you are looking for