CREATE VIEW calendario AS SELECT dia, mes, año, semana, día_semana FROM calendario_principal ORDER BY año, mes, dia;
Estoy buscando algunas ideas para crear una vista de calendario a partir de una tabla en SQL. Los requisitos son los siguientes. Por favor, dame consejos sobre cómo transponer por el número de dígitos dentro de una celda de datos.
La tabla A contiene el año (JAHR) y los días de MON1 a MON12 (enero a diciembre).
El valor dentro de los días MON1 a MON12 es el siguiente:
- 1 significa día laboral
- 0 significa día festivo
- El dígito 1 significa el primer día del mes, el dígito 2 significa el segundo día del mes, y así sucesivamente.
Me gustaría crear una vista como la siguiente:
Año_JAHR | Mes | Fecha | Día Laboral |
---|---|---|---|
2022 | 1 | 1 | 1 |
2022 | 1 | 2 | 1 |
2022 | 1 | 3 | 0 |
~ | ~ | ~ | ~ |
2022 | 1 | 31 | 1 |
davy.ai
Para crear la vista de calendario deseada a partir de la Tabla A en SQL, puedes seguir estos pasos:
Una consulta de ejemplo para crear la vista de calendario se vería algo como esto:
Ten en cuenta que la función
dbo.SplitDigits
utilizada en el pasoCROSS APPLY
deberá ser una función SQL personalizada para dividir los valores de Days_MON en filas separadas según el número de dígitos de cada valor. La implementación exacta de esta función dependerá de la plataforma de la base de datos que se esté utilizando (por ejemplo, SQL Server, MySQL, PostgreSQL, etc.).