¿Cómo puedo contar los días de cada semana para un mes específico que el usuario dará a mi consulta SQL? Por ejemplo, si el usuario da abril de 2021, el resultado será: ingrese la descripción de la imagen aquí

Si el usuario da mayo de 2021 el resultado será: ingrese la descripción de la imagen aquí

0
Apostolos 7 may. 2021 a las 23:33

1 respuesta

La mejor respuesta

Creo que esta es la consulta que estás buscando:

SELECT WEEK AS WEEK_NUMBER, COUNT(*) AS WEEK_DAYS
FROM (SELECT TO_CHAR(FIRST_DAY + (LEVEL-1), 'IW') AS WEEK
      FROM (SELECT supplied_date AS FIRST_DAY, LAST_DAY(supplied_date) - SUPPLIED_DATE+1 AS DAYS
            FROM (SELECT TO_DATE('05/2021', 'MM/YYYY') AS SUPPLIED_DATE
                  FROM DUAL))
CONNECT BY LEVEL <= DAYS)
GROUP BY WEEK
ORDER BY WEEK;

Simplemente reemplace el TO_DATE interno con su fecha.

0
Del 7 may. 2021 a las 20:59