Buenas, le escribo porque tengo un problema que no eh podido resolver, a ver si me pueden ayudar.
al momento de consultar un sql le aplico el perfil de datos t en vez de agregarse dicha condicion en el where la misma aparece en medio de una subconsulta.
adjunto el sql y tambien el error que me aparece en el logger.
desde ya gracias…
$sql = “SELECT b.dependencia,b.sub_tipo,b.tipo,count(b.id_proyecto) as cantidad FROM (select b.*,g.fecha_hasta,h.descripcion as tipo from tipo_proyecto h,proyectos_con_director_estado_tipo_y_subtipo b LEFT OUTER JOIN (select MAX(fecha_hasta) AS fecha_hasta, id_proyecto FROM r_proyecto_prorroga GROUP BY id_proyecto) AS g ON b.id_proyecto=g.id_proyecto
where b.id_tipo_proyecto=2 and b.id_tipo_proyecto=h.id_tipo_proyecto and id_subtipo_proyecto not in (60,58,61))as b,
((SELECT f.id_proyecto from r_proyecto_estado f,(SELECT id_proyecto,MAX(fecha_cambio) as fecha_cambio FROM r_proyecto_estado where fecha_cambio <= $f2 GROUP BY id_proyecto ORDER BY id_proyecto) j
WHERE j.id_proyecto = f.id_proyecto and j.fecha_cambio = f.fecha_cambio and id_estado in (6,12,13)) union (SELECT id_proyecto FROM r_proyecto_estado WHERE id_estado IN (8,9,10,14,15) AND fecha_cambio between $f1 AND $f2)) as c
$where AND b.id_proyecto = c.id_proyecto AND b.id_tipo_proyecto = 2
GROUP BY b.sub_tipo,b.dependencia,b.tipo ORDER BY dependencia,sub_tipo desc”;
$sql = toba::perfil_de_datos()->filtrar($sql);
$datos = toba::db()->consultar($sql);
error que muestra
toba_error_db:
SQLSTATE: db_42601
CODIGO: 7
MENSAJE: ERROR: error de sintaxis en o cerca de «WHERE» LINE 2: …cambio = f.fecha_cambio and id_estado in (6, 12, 13) WHERE ^
SQL: SELECT b.dependencia, b.sub_tipo, b.tipo, count(b.id_proyecto) as cantidad FROM (select b.*, g.fecha_hasta, h.descripcion as tipo from tipo_proyecto h, proyectos_con_director_estado_tipo_y_subtipo b LEFT OUTER JOIN (select MAX(fecha_hasta) AS fecha_hasta, id_proyecto FROM r_proyecto_prorroga GROUP BY id_proyecto) AS g ON b.id_proyecto=g.id_proyecto where b.id_tipo_proyecto=2 and b.id_tipo_proyecto=h.id_tipo_proyecto and id_subtipo_proyecto not in (60, 58, 61))as b, (SELECT f.id_proyecto from r_proyecto_estado f, (SELECT id_proyecto, MAX(fecha_cambio) as fecha_cambio FROM r_proyecto_estado where fecha_cambio <= ‘2009-12-31’ GROUP BY id_proyecto ORDER BY id_proyecto) j WHERE j.id_proyecto = f.id_proyecto and j.fecha_cambio = f.fecha_cambio and id_estado in (6, 12, 13) WHERE -------- PERFIL DE DATOS -------- ( b.id_tipo_proyecto IN (‘2’) ) ------------------------ union SELECT id_proyecto FROM r_proyecto_estado WHERE id_estado IN (8,9,10,14,15) AND fecha_cambio between ‘2009-01-01’ AND ‘2009-12-31’ ) as c WHERE 1 = 1 AND b.id_subtipo_proyecto IN (67) AND b.id_proyecto = c.id_proyecto AND b.id_tipo_proyecto = 2 GROUP BY b.sub_tipo ,b.dependencia ,b.tipo ORDER BY dependencia ,sub_tipo desc