Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/06/2016, 10:04
jucuegas
 
Fecha de Ingreso: enero-2006
Ubicación: Valencia
Mensajes: 96
Antigüedad: 19 años, 1 mes
Puntos: 1
Combinar dos consultas

Hola,
en la actuadad tengo una búsqueda sencilla para mostrar unos resultados entre fechas $fechainicio1 y $fechafin1
Código PHP:
<?php
$consulta 
"SELECT Sum(ventas) AS SumaVentas FROM frm_ventas
WHERE ((ventas_fecha) BETWEEN '$fechainicio1' AND '$fechafin1')
GROUP BY Familia"
;
$result $conn->prepare($consulta);
$result->execute();
$registros $result->fetchAll();

foreach (
$registros as $row) {
    echo 
$row['SumaVentas'];
}
?>
pero ahora tengo que añadir la misma consulta pero entre dos fechas diferentes
$fechainicio1 - $fechafin1 y $fechainicio2 $fechafin2

La primera idea sencilla podría ser algo como esto, pero genera muchas consultas y mucho tiempo de ejecución

Código PHP:
<?php
$consulta 
"SELECT Sum(ventas) AS SumaVentas FROM frm_ventas
WHERE ((ventas_fecha) BETWEEN '$fechainicio1' AND '$fechafin1')
GROUP BY Familia"
;
$result $conn->prepare($consulta);
$result->execute();
$registros $result->fetchAll();

foreach (
$registros as $row) {
    
$consulta "SELECT Sum(ventas) AS SumaVentas2 FROM frm_ventas
    WHERE ((ventas_fecha) BETWEEN '$fechainicio2' AND '$fechafin2')
    AND Familia=:familia"
;
    
$result $conn->prepare($consulta);
    
$result3->execute(array(":familia" => $row['Familia']));
    
$registros $result->fetch();
    
    echo 
$row['SumaVentas'];
    echo 
$row['SumaVentas2'];
}
?>
por lo que lo ideal es, hacer las dos consultas inicialmente y ver como combinarlas en el foreach, que me suena de haber visto algo parecido pero no recuerdo cómo hacerlo

Código PHP:
<?php
$consulta 
"SELECT Sum(ventas) AS SumaVentas FROM frm_ventas
WHERE ((ventas_fecha) BETWEEN '$fechainicio1' AND '$fechafin1')
GROUP BY Familia"
;
$result $conn->prepare($consulta);
$result->execute();
$registros $result->fetchAll();

$consulta2 "SELECT Sum(ventas) AS SumaVentas2 FROM frm_ventas
WHERE ((ventas_fecha) BETWEEN '$fechainicio2' AND '$fechafin2')
GROUP BY Familia"
;
$result2 $conn->prepare($consulta2);
$result2->execute();
$registros2 $result2->fetchAll();

foreach (
$registros as $row) {
    echo 
$row['SumaVentas'];
// como poner aquí los resultados de $registros2 ????
}
?>
Muchas gracias