Announcement

Collapse
No announcement yet.

Sql no funciona en Scriptcase, cuando concatenas campos

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sql no funciona en Scriptcase, cuando concatenas campos

    Hola:

    Tengo un grid de una tabla de "clientes", que tiene entre otros tres campos, que se llaman NOMBRE, APELLIDO1 y APELLIDO2.

    En ésta tabla, si es una persona, se informan los tres campos, pero si es una sociedad solo se informa el primer campo NOMBRE.

    Esto en el formulario de mantenimiento de clientes, funciona perfectamente, ocultando o mostrando los campos adecuados conforme a si es persona o sociedad.

    El problema que tengo es al mostrarlo en el grid. Con este criterio el sql que genera automáticamente SC es:
    SELECT
    _id,
    nif,
    nombre,
    apellido1,
    apellido2,
    nacionalidad,
    tipo_via,
    nombre_via,
    tipo_num,
    num_casa,
    calif_num,
    bloque,
    portal,
    esc,
    planta,
    puerta,
    complemento,
    municipio,
    codigo_postal,
    provincia,
    email,
    telef_fijo,
    telef_movil,
    fax,
    tipo,
    url,
    fecha_alta
    FROM
    clientes

    Pero yo deseo concatenar en un sólo campo, los tres campos de la tabla para lo cual he cambiado el select de la manera siguiente:

    SELECT
    _id,
    nif,
    concat (apellido1,apellido2, nombre) as nombre,
    nacionalidad,
    tipo_via,
    nombre_via,
    tipo_num,
    num_casa,
    calif_num,
    bloque,
    portal,
    esc,
    planta,
    puerta,
    complemento,
    municipio,
    codigo_postal,
    provincia,
    email,
    telef_fijo,
    telef_movil,
    fax,
    tipo,
    url,
    fecha_alta
    FROM
    clientes
    ORDER BY
    apellido1 ASC, apellido2 ASC, nombre ASC


    Como vereis he cambiado lo que está en rojo, pero mientras el order by funciona correctamente, el concatenar los campos, no me lo admite, se queda colgado durante minutos el SC, y al final me deja el select sin concatenar los campos.

    El caso es que en el SQL Builder, funciona correctamente, y en el phpmyadmin igualmente.

    ¿Como puedo hacer que ésto funcione? ¿Que estoy haciendo mal?

    Gracias por vuestra ayuda

    Carlos

  • #2
    Re: Sql no funciona en Scriptcase, cuando concatenas campos

    Holá, buenas tardes

    Por lo que veo tu select deberia funcionar correctamente. Lo voy a testar en mi máquina. Pero mientras no lo hago, yo por su parte dejaria el select normal y en el evento OnScriptInit yo haria la concatenación de los campos. Con eso lo arreglaria todo. Pero lo del concat toca testarlo.

    Saludos

    Comment


    • #3
      Re: Sql no funciona en Scriptcase, cuando concatenas campos

      Janilson:

      No doy como hacerlo, siguiendo tus instrucciones.

      Los tres campos a concatenar son: nombre, apellido1, apellido2.
      En "Campos seleccionados", muestro sólo el campo "nombre"
      y en el evento onScriptinit, he puesto:
      {nombre} = {nombre} + ' ' + {apellido1} + ' ' + {apellido2};
      Pero no me concatena el campo, me sigue mostrando sólo el nombre.
      He probado tambien en el evento onRecord, pero entonces me muestra un 0 (cero) en el campo.

      ¿Como debo de hacerlo realmente para que me funcione?

      De nuevo, gracias anticipadas

      Carlos

      Comment


      • #4
        Re: Sql no funciona en Scriptcase, cuando concatenas campos

        Prueba con lo siguiente

        {nombre} = {nombre} .' ' .{apellido1} .' ' .{apellido2};

        Comment


        • #5
          Re: Sql no funciona en Scriptcase, cuando concatenas campos

          Un poco mas de informacion seria de mas ayuda,
          primero manejador de base de datos.
          segundo al utilizar alguna de las funciones sum, list, concat etc debes primero agrupar todos los campos a excepcion de los que estas concatenando y posteriormente ordenarlos

          SELECT
          _id,
          nif,
          concat (apellido1,apellido2, nombre) as nombre,
          nacionalidad,
          tipo_via,
          nombre_via,
          tipo_num,
          num_casa,
          calif_num,
          bloque,
          portal,
          esc,
          planta,
          puerta,
          complemento,
          municipio,
          codigo_postal,
          provincia,
          email,
          telef_fijo,
          telef_movil,
          fax,
          tipo,
          url,
          fecha_alta
          FROM
          clientes
          group by
          _id,
          nif,
          nacionalidad,
          tipo_via,
          nombre_via,
          tipo_num,
          num_casa,
          calif_num,
          bloque,
          portal,
          esc,
          planta,
          puerta,
          complemento,
          municipio,
          codigo_postal,
          provincia,
          email,
          telef_fijo,
          telef_movil,
          fax,
          tipo,
          url,
          fecha_alta
          ORDER BY
          apellido1 ASC, apellido2 ASC, nombre ASC

          yo tuve un problema similar con firebird 2.5 (aquí no funciona concat) y la funcion list(campo) ya que yo requería enlistar un campo que se repetía con la misma información en una búsqueda


          espero sirva de ayuda

          saludos.

          Comment


          • #6
            Espero que no sea demasiado tarde pero puedes probar cambiando el nombre de la variable: concat (apellido1,apellido2, nombre) as tnombre,
            hay ocasiones que al definir el nombre de una variable igual que un campo, SC tiene problemas.

            Comment

            Working...
            X