Foros del Web » Programando para Internet » PHP » Zend »

Zend Db Exception "column not found"

Estas en el tema de Zend Db Exception "column not found" en el foro de Zend en Foros del Web. Hola, estoy uniendo muchas tablas para generar un reporte, no obstante me da una excepción Zend_Db acerca de que NO existe un campo llamado tipo_movimiento, ...
  #1 (permalink)  
Antiguo 17/03/2011, 12:39
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Zend Db Exception "column not found"

Hola, estoy uniendo muchas tablas para generar un reporte, no obstante me da una excepción Zend_Db acerca de que NO existe un campo llamado tipo_movimiento, sin embargo ya lo trate de agregar a la lista YA que el campo se llama "nombre" pero use el Alias "as" para renombrarlo a "tipo_movimiento"

Código PHP:
$clientes $this->select()->setIntegrityCheck(false);

            
$solicitedData = array('distinct(Asegurados.id_asegurado) as id_asegurado',
                                           
'Clientes.id_cliente as id_cliente',
                                   
'Clientes.nombre_empresa as nombre_empresa',
                                   
'Clientes_Subgrupos.id_grupo as id_grupo',
                                           
'Clientes_Subgrupos.nombre_grupo as nombre_grupo',
                                   
'Clientes_Subgrupos.numero_poliza as numero_poliza',
                               
'Clientes_Subgrupos.fecha_inicio_vigencia as fecha_inicio_vigencia',
                               
'Clientes_Subgrupos.fecha_fin_vigencia as fecha_fin_vigencia',
                                   
'Clientes_Categorias.id_categoria as id_categoria',
                                   
'Clientes_Categorias.categoria as categoria',
                                   
'Asegurados.nombre_completo as nombre_asegurado',
                                           
'Asegurados.nombre_completo as nombre_completo',
                                   
'Asegurados.fecha_nac as fecha_nacimiento',
                                           
'Asegurados.fecha_nac as fecha_nac',
                                           
'Asegurados.email',
                                   
'Asegurados.sexo as sexo',
                               
'Asegurados.vip as vip',
                                   
'Aseguradoras.id_aseguradora as id_aseguradora',
                                   
'Aseguradoras.aseguradora as aseguradora',
                                   
'Catalogo_Atiende.nombre as atiende',
                                   
'Asegurado_Movimientos.idasegurado_movimientos as idasegurado_movimientos',
                                   
'Asegurado_Movimientos.descripcion_movimiento as descripcion_movimiento',
                                   
'Asegurado_Movimientos.no_folio as no_folio',
                               
'Asegurado_Movimientos.array_map as array_map',
                               
'Categorias_Asegurado.id_categorias_asegurado as id_categorias_asegurado',
                                           
'Categorias_Asegurado.certificado as certificado',
                                           
'Categorias_Asegurado.fecha_baja as fecha_baja',
                            
'Categorias_Asegurado.parentesco as parentesco',
                                   
'Categorias_Asegurado.id_parent as id_parent',
                                           
'Categorias_Asegurado.fecha_inicio_vigencia',
                                   
'Asegurados.fecha_antiguedad as fecha_antiguedad');

            
$clientes->from($this,$solicitedData);
            
$clientes->joinInner('Categorias_Asegurado','Categorias_Asegurado.id_asegurado=Asegurados.id_asegurado','');
            
$clientes->joinInner('Clientes_Categorias','Categorias_Asegurado.id_categoria=Clientes_Categorias.id_categoria','');
            
$clientes->joinInner('Clientes_Subgrupos','Clientes_Subgrupos.id_grupo=Clientes_Categorias.id_grupo','');
            
$clientes->joinInner('Aseguradoras','Aseguradoras.id_aseguradora = Clientes_Subgrupos.id_aseguradora','');//Aseguradoras
            
$clientes->joinInner('Clientes','Clientes_Subgrupos.id_cliente=Clientes.id_cliente','');
            
$clientes->joinInner('Asegurado_Movimientos','Asegurado_Movimientos.id_categorias_asegurado = Categorias_Asegurado.id_categorias_asegurado','');
            
$clientes->joinInner('Catalogo_Movimientos','Catalogo_Movimientos.id_catalogo_movimientos =  Asegurado_Movimientos.id_catalogo_movimientos','Catalogo_Movimientos.nombre AS tipo_movimiento');//Catalogo Movimientos
            
$clientes->joinInner('Asegurado_Movimientos_Log','Asegurado_Movimientos.idasegurado_movimientos = Asegurado_Movimientos_Log.idasegurado_movimientos', array('min(Asegurado_Movimientos_Log.fecha_actualizacion) as fecha_inicio_movimiento','max(Asegurado_Movimientos_Log.fecha_actualizacion) as fecha_fin_movimiento') );
            
$clientes->joinInner('Seguimiento_Atiende','Asegurado_Movimientos.id_seguimiento_atiende = Seguimiento_Atiende.id_seguimiento_atiende','Seguimiento_Atiende.nombre as status');
            
$clientes->joinInner('Catalogo_Atiende','Catalogo_Atiende.id_catalogo_atiende = Seguimiento_Atiende.id_catalogo_atiende',''); 
Ya trate de agregarlo En el array $solicitedData y ahora lo agregue aqui..

Código PHP:
>joinInner('Catalogo_Movimientos','Catalogo_Movimientos.id_catalogo_movimientos =  Asegurado_Movimientos.id_catalogo_movimientos','Catalogo_Movimientos.nombre AS tipo_movimiento');//Catalogo Movimientos 
El problema es que SI me regresa los datos de la consulta BIEN, pero cuando trato de hacer un WHERE.

Código PHP:
$clientes->where('tipo_movimiento' " like '%" $filters[$j]['data']['value'] . "%'" ); 
Me vota el clasico...

Código PHP:
Zend_Db_Statement_ExceptionSQLSTATE[42S22]: Column not found1054 Unknown column 'tipo_movimiento' in 'where clause' 
Alguna idea de por que en el WHERE el campo parece no existir sin embargo al hacer el assemble();

Viene en la lista de campos..

Código PHP:
SELECT distinct(Asegurados.id_asegurado) AS `id_asegurado`, `Clientes`.`id_cliente`, `Clientes`.`nombre_empresa`,
`
Clientes_Subgrupos`.`id_grupo`, `Clientes_Subgrupos`.`nombre_grupo`, `Clientes_Subgrupos`.`numero_poliza`,
`
Clientes_Subgrupos`.`fecha_inicio_vigencia`, `Clientes_Subgrupos`.`fecha_fin_vigencia`,
`
Clientes_Categorias`.`id_categoria`, `Clientes_Categorias`.`categoria`, `Asegurados`.`nombre_completo` AS
`
nombre_asegurado`, `Asegurados`.`nombre_completo`, `Asegurados`.`fecha_nac` AS `fecha_nacimiento`,
`
Asegurados`.`fecha_nac`, `Asegurados`.`email`, `Asegurados`.`sexo`, `Asegurados`.`vip`,
`
Aseguradoras`.`id_aseguradora`, `Aseguradoras`.`aseguradora`, `Catalogo_Atiende`.`nombre` AS `atiende`,
`
Catalogo_Movimientos`.`nombre` AS `tipo_movimiento
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #2 (permalink)  
Antiguo 17/03/2011, 12:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend Db Exception "column not found"

Tu problema parece ser más de SQL que de Zend, creo que MySQL no soporta usar un alias en el Where, tendrías que usar el formato tabla.columna.

Trata de ejecutar tu query en un gestor de BDD y revisa eso.

Saludos.
  #3 (permalink)  
Antiguo 17/03/2011, 13:03
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Zend Db Exception "column not found"

usa having
  #4 (permalink)  
Antiguo 17/03/2011, 13:14
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Respuesta: Zend Db Exception "column not found"

Cita:
Iniciado por HiToGoRoShi Ver Mensaje
usa having


Muchísimas gracias efectivamente lo que comentaba GatorV era cierto y se resuelve con Having :D
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador

Etiquetas: column, found, frameworks-y-php-orientado-a-objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:48.