Ver Mensaje Individual
  #16  
Antiguo 02-02-2018
mRoman mRoman is offline
Miembro
 
Registrado: Nov 2003
Posts: 340
Reputación: 15
mRoman Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
Yo también pienso lo mismo...

Es por el nombre del "campo" (telefono_celular), desafortunadamente hay cosas que no puedo cambiar (algo largo de explicar)y este es uno de ellos. En la estructura del reporte DEBE haber un campo llamado asi....si no el reporte no funciona porq trata de localizar ese campo y si no va en la estructura del query, pues el sistema mandara MSG de error.

Ahora se me esta presentando el mismo problema en un query q no tiene comillas simples con algo vacio entre ellas....es raro. Algo se ha de haber cambiado dentro de Firebird ya que algunas estructura hechas de SQL no las esta reconociendo....ahora el error me lo presenta en una consulta con SELECT anidados....los tuve que hacer por separado para que ya no marcara error....Y COMO ESE QUERY TENGO MAS DENTRO DEL SISTEMA....y ahora también me da estos mismos errores en mi laptop !!!...no he reinstalado ni actualizado nada ahi!.

Código SQL [-]
select a.anio,
       ((select sum(b.litros)
           from reporte_despacho1 b
          where extract(year from b.fecha_embarque)=:anio
            and extract(month from b.fecha_embarque)=:mes
            and b.producto like 'AS%' )-a.feb ) as difer,
       ((select sum(b.litros)
           from reporte_despacho1 b
          where extract(year from b.fecha_embarque)=:anio
            and extract(month from b.fecha_embarque)=:mes
            and b.producto like 'AS%' )/a.feb)*100 as porcentaje
from PROGRAMA_DISTRIBUCION_ANUAL A
where a.clave_clasificacion=3
  and a.clave_rubro=1
  and a.anio=:anio

Lo curioso es que en el IBExpert no marca errores....pero en el sistema si lo hace¡¡¡....(todo en mi lap)
Bien les platico que hice...

Por cada parametro definido en la consulta, tuve que definirlos nuevamente pero de manera distinta, esto obviamente me ocasiono aumentar mas lineas de codgo al momento de ejectuar la consulta desde delphi.

Nueva consulta con parametros nuevos:
Código SQL [-]
select a.anio,
       ((select sum(b.litros)
           from reporte_despacho1 b
          where extract(year from b.fecha_embarque)=:anio1
            and extract(month from b.fecha_embarque)=:mes1
            and b.producto like 'AS%' )-a.feb ) as difer,
       ((select sum(b.litros)
           from reporte_despacho1 b
          where extract(year from b.fecha_embarque)=:anio2
            and extract(month from b.fecha_embarque)=:mes2
            and b.producto like 'AS%' )/a.feb)*100 as porcentaje
from PROGRAMA_DISTRIBUCION_ANUAL A
where a.clave_clasificacion=3
  and a.clave_rubro=1
  and a.anio=:anio3

Y de esta manera no me marca error....

PREGUNTA:

La construccion de mi consulta original esta mal estructurada??...es válida para firebird??.

Trabajar asi, me parece algo realmente INPRACTICO ya que en ocaciones son necesarios repetirlos dentro de una misma consulta, como en este caso...porqué entonces se comporta como que no es correcto??.

OBSERVACIONES:
  1. No permite usar los mismos nombres de parametros dentro de la estructura SQL de consulta.
  2. El uso de comillas simples '' sin un espacio en blanco dentro de ellas, aparentemente no lo reconoce como estructura válida de SQL (otra consulta distinta), es necesario dejarle el espacio entre las comillas ' '.
mmm...alguien mas que no pueda dar una luz con esto??.
__________________
Miguel Román

Última edición por mRoman fecha: 02-02-2018 a las 22:02:39.
Responder Con Cita