Pregunta:
Fecha: 11-11-2022 10:48:47
(En Español)
Gracias
Votos: 0 - Respuestas: 2 - Vistas: 7 Compartir en: Google Facebook Twitter LinkedIn Link
Como obtener los 12 meses del año[No resuelta]
Hola, tengo la siguiente situación: tengo consulta que necesito que me recorra desde enero hasta diciembre para pasar el valor del periodo a una subconsulta. En este momento como la tengo solo me está trabajando con los meses que están guardados en base de datos. Lo que necesito es que me traiga todos los meses que no están en la base de datos. A continuación les dejo la consulta para ver si me pueden ayudarGracias
SELECT e.nom_cort, bi.nombre_corto, bi.cuenta_banco, SUBSTRING(eb.fecha,1,4) AS año, eb.periodo, (SELECT COUNT(eb2.id) FROM ecuenta_banco eb2 WHERE eb2.año = eb.año AND eb2.periodo = eb.periodo AND eb2.id_banco = eb.id_banco) as esatdo FROM tabla1 eb INNER JOIN tabla2 bi ON bi.id = eb.id_banco INNER JOIN tabla3 e ON e.id = bi.id_empresa
Votos: 0 - Respuestas: 2 - Vistas: 7 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 18-11-2022 04:45:31 Para implementar lo que deseas debes colocar tu consulta dentro de un LOOP. Sería algo similar a esto:
LOOP -- tu consulta va aquí, debes usar la variable 'mes' (numero 1 - 12) para iterar IF mes = 12 THEN LEAVE; END IF; END LOOP;
Si estás ejecutando la consulta dentro de un script, entonces no necesitas el LOOP, puedes simplemente usar un lazo for() Votos: 0 - Link respuesta -
Fecha: 24-05-2023 19:50:26 SELECT
e.nom_cort,
bi.nombre_corto,
bi.cuenta_banco,
SUBSTRING(eb.fecha, 1, 4) AS año,
m.mes AS periodo,
(
SELECT COUNT(eb2.id)
FROM ecuenta_banco eb2
WHERE eb2.año = eb.año
AND eb2.periodo = m.mes
AND eb2.id_banco = eb.id_banco
) AS estado
FROM tabla1 eb
INNER JOIN tabla2 bi ON bi.id = eb.id_banco
INNER JOIN tabla3 e ON e.id = bi.id_empresa
RIGHT JOIN (
SELECT 1 AS mes UNION SELECT 2 UNION SELECT 3 UNION SELECT 4
UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8
UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12
) AS m ON m.mes = MONTH(eb.fecha) Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión