New question

Question:

Date: 11-11-2022 10:48:47 (In Spanish)

Como obtener los 12 meses del año[Unresolved]

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 ayudar

Gracias

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

Tags: MySQL - SQL Function Votes: 0 - Answers: 2 - Views: 7 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 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()
      Votes: 0 - Link answer
     
  • Date: 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)
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com