Hola EdePCal final no he podido lograr hacerlo desde mysql (si tome la logica que planteaste y lo realice desde php)
Todos los ";" (salvo del del DELIMITER) me daban error - "caracter inesperado"
Al quitarlos, CREATE me da el siguiente mensaje de error - "se econtro una nueva declaracion, pero no hay delimitado entre este y el anterior."
AL incorporar un DELIMITER para separar DROP de CREATE y ejecutar la consulta
"#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHILE DAYNAME(fecha) <> 'Thursday' DO
SET fecha = DATE_SUB(fecha, INTERVAL ' at line 4"
Probe borrando DROP y el error 1064 se repite.
voy a leer más en el manual porque esta claro que algo se me escapa.
-----------------------------------------------------------------------------
PHP
$juevesPasado = date('Y-m-d');
$dia_fecha = date('l');
while ($dia_fecha != 'Thursday') {
//si hoy no es jueves le resto un día a la fecha
$juevesPasado = strtotime('-1 day', strtotime($juevesPasado));
$juevesPasado = date('Y-m-d', $juevesPasado);
//resto un día al dia de la semana
$dia_fecha = strtotime('-1 day', strtotime($juevesPasado));
$dia_fecha = date('l', $juevesPasado);
}
$juevesProximo = date('Y-m-d');
$dia_fecha_futuro = date('l');
while ($dia_fecha_futuro != 'Thursday') {
//si hoy no es jueves le sumo un día a la fecha
$juevesProximo = strtotime('+1 day', strtotime($juevesProximo));
$juevesProximo = date('Y-m-d', $juevesProximo);
//sumo un día al dia de la semana
$dia_fecha_futuro = strtotime('+1 day', strtotime($juevesProximo));
$dia_fecha_futuro = date('l', $juevesProximo);
}
//si hoy es jueves - $juevesPasado = hoy y $juevesProximo = hoy + 7 dias
if ($dia_fecha == 'Thursday') {
$juevesPasado = date('Y-m-d');
$juevesProximo = strtotime('+7 day', strtotime($juevesProximo));
$juevesProximo = date('Y-m-d', $juevesProximo);
}
//consulta mysql
$vencimiento_semanal = "SELECT SUM(MONTO) AS vencimiento_semana FROM cheques WHERE FECHA_COBRO BETWEEN '$juevesPasado' AND '$juevesProximo' AND ID_ESTADO = 1 AND ID_TIPO = 1";
fin PHP -------------------------------------------------------
Muchas gracias por la ayuda voy intentar dar con la solucion, me interesa también saber hacerlo desde mysql.
Todos los ";" (salvo del del DELIMITER) me daban error - "caracter inesperado"
Al quitarlos, CREATE me da el siguiente mensaje de error - "se econtro una nueva declaracion, pero no hay delimitado entre este y el anterior."
AL incorporar un DELIMITER para separar DROP de CREATE y ejecutar la consulta
"#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHILE DAYNAME(fecha) <> 'Thursday' DO
SET fecha = DATE_SUB(fecha, INTERVAL ' at line 4"
Probe borrando DROP y el error 1064 se repite.
voy a leer más en el manual porque esta claro que algo se me escapa.
-----------------------------------------------------------------------------
PHP
$juevesPasado = date('Y-m-d');
$dia_fecha = date('l');
while ($dia_fecha != 'Thursday') {
//si hoy no es jueves le resto un día a la fecha
$juevesPasado = strtotime('-1 day', strtotime($juevesPasado));
$juevesPasado = date('Y-m-d', $juevesPasado);
//resto un día al dia de la semana
$dia_fecha = strtotime('-1 day', strtotime($juevesPasado));
$dia_fecha = date('l', $juevesPasado);
}
$juevesProximo = date('Y-m-d');
$dia_fecha_futuro = date('l');
while ($dia_fecha_futuro != 'Thursday') {
//si hoy no es jueves le sumo un día a la fecha
$juevesProximo = strtotime('+1 day', strtotime($juevesProximo));
$juevesProximo = date('Y-m-d', $juevesProximo);
//sumo un día al dia de la semana
$dia_fecha_futuro = strtotime('+1 day', strtotime($juevesProximo));
$dia_fecha_futuro = date('l', $juevesProximo);
}
//si hoy es jueves - $juevesPasado = hoy y $juevesProximo = hoy + 7 dias
if ($dia_fecha == 'Thursday') {
$juevesPasado = date('Y-m-d');
$juevesProximo = strtotime('+7 day', strtotime($juevesProximo));
$juevesProximo = date('Y-m-d', $juevesProximo);
}
//consulta mysql
$vencimiento_semanal = "SELECT SUM(MONTO) AS vencimiento_semana FROM cheques WHERE FECHA_COBRO BETWEEN '$juevesPasado' AND '$juevesProximo' AND ID_ESTADO = 1 AND ID_TIPO = 1";
fin PHP -------------------------------------------------------
Muchas gracias por la ayuda voy intentar dar con la solucion, me interesa también saber hacerlo desde mysql.