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

Consultas con select avanzadas

Estas en el tema de Consultas con select avanzadas en el foro de Zend en Foros del Web. Buen día a todos, tengo una consulta, he revisado en varios lugares mi problema pero no he dado con una solución, siempre he encontrado como ...
  #1 (permalink)  
Antiguo 18/04/2012, 15:27
Avatar de irwinvalera  
Fecha de Ingreso: enero-2012
Ubicación: Lima, Peru
Mensajes: 18
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta Consultas con select avanzadas

Buen día a todos, tengo una consulta, he revisado en varios lugares mi problema pero no he dado con una solución, siempre he encontrado como usar Zend DB para armar consultas simples, pero que pasa cuando quiero hacer una subconsulta? como la armo, tengo la consulta:

SELECT
COUNT(*) AS completa
FROM
tabla1
WHERE
tabla1.compania = "70" AND
tabla1.localidad = "98" AND
tabla1.cotiza = "5678" AND
EXISTS (
SELECT
tabla2.compania, tabla2.localidad, tabla2.cotiza, COUNT(*),
SUM(CASE WHEN im_item_valvta = 0 THEN 1 WHEN im_valvta IS NULL THEN 1 ELSE 0 END)
FROM
tabla2, tabla1WITH (nolock)
WHERE
tabla2.compania = tabla1.compania AND
tabla2.localidad = tabla1.localidad AND
tabla2.cotiza = tabla1.cotiza AND
tabla2.operacion = "5678"
GROUP BY
tabla2.compania,
tabla2.localidad,
tabla2cotiza
HAVING
COUNT(*) = SUM(CASE WHEN im_valvta = 0 THEN 1 WHEN im_valvta IS NULL THEN 1 ELSE 0 END)
)

y me gustaría pasarla a Zend Db Pero, como???? si alguien podría ayudarme. Gracias de antemano por sus respuestas.
  #2 (permalink)  
Antiguo 18/04/2012, 16:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Consultas con select avanzadas

Puedes hacer subconsultas sin problemas, solo crea la sub consulta, por ejemplo:
Código PHP:
Ver original
  1. $sub = $this->getSelect();
  2. $sub->from(array('f' => 'foo'));
  3. $sub->where('bar=baz');
  4.  
  5. $main = $this->getSelect();
  6. $main->from(array('y' => 'atable'));
  7. $main->where('id IN (?)', $sub);

Saludos.
  #3 (permalink)  
Antiguo 18/04/2012, 16:11
Avatar de irwinvalera  
Fecha de Ingreso: enero-2012
Ubicación: Lima, Peru
Mensajes: 18
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Consultas con select avanzadas

Gracias por la pronta respuesta como siempre. Voy a probarlo y comento como me fue! bendiciones.

Etiquetas: Ninguno
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 15:10.