Saber si Select Single Regreso mas de 1 registro

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • aldape
    Senior Member
    • dic
    • 204

    #1

    Saber si Select Single Regreso mas de 1 registro

    Saber si Select Single Regreso mas de 1 registro..

    Es posible?

    Saludos.
  • temaljose
    Senior Member
    • oct
    • 203

    #2
    el select single te regresa nada mas una entrada si existen varias te agarra la entrada mas antigua, si quieres que un select te agarre todas las entradas utiliza el select * into table, por ejemplo pero existen varias formas yo utilizo esta porque me parece mas eficiente, espero haberte ayudado, saludos
    Lo unico que se, es que no se nada.....

    Comentario

    • Jorge L T
      Member
      • jul
      • 58

      #3
      Originalmente publicado por aldape
      Saber si Select Single Regreso mas de 1 registro..
      Un Select Single devuelve UN sólo registro o fila de la tabla en cuestión, sy-subrc = 0 => OK, sy-subrc = 4 => sin registros para el where definido
      J

      Comentario

      • aldape
        Senior Member
        • dic
        • 204

        #4
        Select single regresa un solo registro,

        sera posible saber si es unico? sin tener que hacer un count(*) o algo por el estilo...

        la pregunta es solo por eficiencia en el codigo, para no escribir mas codigo de lo debido...

        yo imagino algo asi

        sy-subrc 0 = 1 registro
        sy-subrc 8 > 1 registros... algo loco por el estilo

        Saludos.

        Comentario

        • abapconsultoria
          Senior Member
          • ene
          • 101

          #5
          No, no existe. Con el select single que realice de prueba observa como lo tradujo la interfase de BD.


          SELECT
          /*+
          FIRST_ROWS (1)
          */
          *
          FROM
          "TADIR"
          WHERE
          ROWNUM <= :A0

          Es decir el servidor siempre vaa devolver el primero y vos no vas a tener forma desde el R3 de saber cuantos habia en la BD. Vas a tener que utilizar la funcion de agregacion directamente.

          Saludos.
          ABAPCONSULTORIA@GMAIL.COM

          www.consultoriaabap.blogspot.com

          Lo importante no es saber sino saber quien es el que sabe

          Comentario

          • aldape
            Senior Member
            • dic
            • 204

            #6
            Muchas gracias!
            En una chance, nos explicas como se hace la traduccion que hiciste...

            Saludos

            Comentario

            • robert_milan
              Senior Member
              • jun
              • 315

              #7
              un select single siempre te regresa un registro y siempre es el que encuentra primero con la coincidencia en el where.

              por lo que si quieres saber cuantos registros extrae con la restriccion del where te sugiero que lo cambias a :

              select count para saber si tienes mas de 2
              Un Huevon No Inútil


              Solo di lo que piensas, a la mejor tienes la mejor respuesta....

              Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

              Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

              Consultor FI jr/ABAP Sr.

              Comentario

              • abapconsultoria
                Senior Member
                • ene
                • 101

                #8
                Lo que puse se obtiene de el traceo de una sentencia select en la trx ST05. Ahi podes ver la conversion que realiza la interfase de base de datos a SQL Nativo.

                Saludos
                ABAPCONSULTORIA@GMAIL.COM

                www.consultoriaabap.blogspot.com

                Lo importante no es saber sino saber quien es el que sabe

                Comentario

                • willymj
                  Junior Member
                  • abr
                  • 4

                  #9
                  Select con N cantidad de registros

                  En Sql server los query para traer 10 registros es algo asi:

                  Select top 10 * From Tabla

                  en Abap eso mismo es igual a:

                  Select *
                  INTO TABLE tabla_interna
                  UP TO 20 ROWS
                  FROM but000

                  asi de simple.....

                  la gracia es el Up to traes 20 registros....

                  Comentario

                  • ibecerra

                    #10
                    quieres hacer un select count
                    facil
                    wcount type i
                    select count(*) into wcount from tabla where condiciones.

                    Comentario

                    Trabajando...