Consulta SQL

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • leo_cba
    Junior Member
    • dic
    • 12

    #1

    Consulta SQL

    Buenos días a todos. Tengo una tabla que en uno de sus campos tiene el valor "1S.FE190209". A mi me interesa recuperar todos los registros que coincidan con el "190209". Donde "190209" es el valor que toma una variable a partir de la fecha. Estuve jugando con el LIKE dentro de la consulta SQL pero no funcionó. Les dejo el codigo que tengo hasta ahora:

    CONCATENATE p_fecha+6(2) p_fecha+4(2) p_fecha+2(2)
    INTO fecha.

    select * from table into table it_table where campo LIKE '%' fecha.

    (obviamente la sintaxis no es la correcta, es para que se den una idea de lo que quiero hacer)
  • omegaotaku
    Member
    • nov
    • 43

    #2
    Originalmente publicado por leo_cba
    Buenos días a todos. Tengo una tabla que en uno de sus campos tiene el valor "1S.FE190209". A mi me interesa recuperar todos los registros que coincidan con el "190209". Donde "190209" es el valor que toma una variable a partir de la fecha. Estuve jugando con el LIKE dentro de la consulta SQL pero no funcionó. Les dejo el codigo que tengo hasta ahora:

    CONCATENATE p_fecha+6(2) p_fecha+4(2) p_fecha+2(2)
    INTO fecha.

    select * from table into table it_table where campo LIKE '%' fecha.

    (obviamente la sintaxis no es la correcta, es para que se den una idea de lo que quiero hacer)
    select * from table into table it_table where campo LIKE '%fecha'.

    Comentario

    • leo_cba
      Junior Member
      • dic
      • 12

      #3
      Originalmente publicado por omegaotaku
      select * from table into table it_table where campo LIKE '%fecha'.
      Lo intenté también, pero no funciona porque a fecha lo toma como un literal y no como una variable.

      Comentario

      • omegaotaku
        Member
        • nov
        • 43

        #4
        Originalmente publicado por leo_cba
        Buenos días a todos. Tengo una tabla que en uno de sus campos tiene el valor "1S.FE190209". A mi me interesa recuperar todos los registros que coincidan con el "190209". Donde "190209" es el valor que toma una variable a partir de la fecha. Estuve jugando con el LIKE dentro de la consulta SQL pero no funcionó. Les dejo el codigo que tengo hasta ahora:

        CONCATENATE p_fecha+6(2) p_fecha+4(2) p_fecha+2(2)
        INTO fecha.

        select * from table into table it_table where campo LIKE '%' fecha.

        (obviamente la sintaxis no es la correcta, es para que se den una idea de lo que quiero hacer)

        CONCATENATE '%' p_fecha+6(2) p_fecha+4(2) p_fecha+2(2)
        INTO fecha.

        select * from table into table it_table where campo LIKE fecha.

        Comentario

        • leo_cba
          Junior Member
          • dic
          • 12

          #5
          Originalmente publicado por omegaotaku
          CONCATENATE '%' p_fecha+6(2) p_fecha+4(2) p_fecha+2(2)
          INTO fecha.

          select * from table into table it_table where campo LIKE fecha.
          Lamentablemente tampoco funciona, el valor del campo es "1S.FE190209", yo debo traer todo lo que contenga "190209" sin importar que haya antes (en este caso "1S.FE"). Si hago "...campo LIKE fecha..." va a intentar traerme lo que coincida exactamente con fecha. Lógicamente, no va a encontrar nada.

          Comentario

          • omegaotaku
            Member
            • nov
            • 43

            #6
            Originalmente publicado por leo_cba
            Lamentablemente tampoco funciona, el valor del campo es "1S.FE190209", yo debo traer todo lo que contenga "190209" sin importar que haya antes (en este caso "1S.FE"). Si hago "...campo LIKE fecha..." va a intentar traerme lo que coincida exactamente con fecha. Lógicamente, no va a encontrar nada.
            Si el valor 190209 es siempre el mismo podes hacer

            select * from table into table it_table where campo LIKE '%190209'.

            Ahora si ese valor cambia ya sea porque el usuario ingreso un valor distinto o esta dentro de un LOOP debes acomodar el CONCATENATE y debería funcionar.

            CONCATENATE '%' p_fecha+6(2) p_fecha+4(2) p_fecha+2(2)
            INTO fecha.

            Comentario

            Trabajando...