MESICE_V_ROCE.SQL
/******************************************************/
/* Vytvářecí skript: MESICE_V_ROCE.SQL */
/* Datum: 13.2.2002 */
/* databáze: ORACLE ver.8.1' */
/* */
/* Copyright: (c) 2002 by MEDO Zdeněk jr. */
/******************************************************/
CREATE OR REPLACE FORCE VIEW MESICE_V_ROCE
( ZACATEK_MES_DEN,
ZACATEK_MES_DATUM,
KONEC_MES_DEN,
KONEC_MES_DATUM,
POCET_DNI,
NAZEV_MESICE,
CISLO_MESICE
)
AS
SELECT to_char(ROUND(to_date('1.1.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.1.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.1.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.1.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.1.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Leden', 01
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.2.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.2.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.2.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.2.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.2.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Únor', 02
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.3.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.3.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.3.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.3.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.3.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Březen', 03
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.4.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.4.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.4.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.4.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.4.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Duben', 04
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.5.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.5.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.5.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.5.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.5.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Květen', 05
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.6.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.6.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.6.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.6.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.6.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Červen', 06
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.7.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.7.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.7.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.7.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.7.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Červenec', 07
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.8.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.8.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.8.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.8.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.8.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Srpen', 08
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.9.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.9.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.9.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.9.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.9.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Září', 09
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.10.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.10.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.10.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.10.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.10.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Říjen', 10
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.11.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.11.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.11.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.11.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.11.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Listopad', 11
FROM DUAL
UNION
ALL SELECT to_char(ROUND(to_date('1.12.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')),'DAY'), ROUND(to_date('1.12.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY')), to_char(ROUND(LAST_DAY(to_date('1.12.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DAY'), ROUND(LAST_DAY(to_date('1.12.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))), to_number(to_char(ROUND(LAST_DAY(to_date('1.12.'||to_char(SYSDATE, 'YYYY'),'DD.MM.YYYY'))),'DD')), 'Prosinec', 12
FROM DUAL;
-- Předchozí skript vytvoří pohled MESICE_V_ROCE,
-- který vrací detailní údaje k měsícům v právě aktuálním roce viz.:
SELECT ZACATEK_MES_DEN,
ZACATEK_MES_DATUM,
KONEC_MES_DEN,
KONEC_MES_DATUM,
POCET_DNI,
NAZEV_MESICE,
CISLO_MESICE
FROM MESICE_V_ROCE;
zacatek_mes_den |
zacatek_mes_datum |
konec_mes_den |
konec_mes_datum |
pocet_dni |
nazev_mesice |
cislo_mesice |
STŘEDA |
1.1.2003 |
PÁTEK |
31.1.2003 |
31 |
Leden |
1 |
SOBOTA |
1.2.2003 |
PÁTEK |
28.2.2003 |
28 |
Únor |
2 |
SOBOTA |
1.3.2003 |
PONDĚLÍ |
31.3.2003 |
31 |
Březen |
3 |
ÚTERÝ |
1.4.2003 |
STŘEDA |
30.4.2003 |
30 |
Duben |
4 |
ČTVRTEK |
1.5.2003 |
SOBOTA |
31.5.2003 |
31 |
Květen |
5 |
NEDĚLE |
1.6.2003 |
PONDĚLÍ |
30.6.2003 |
30 |
Červen |
6 |
ÚTERÝ |
1.7.2003 |
ČTVRTEK |
31.7.2003 |
31 |
Červenec |
7 |
PÁTEK |
1.8.2003 |
NEDĚLE |
31.8.2003 |
31 |
Srpen |
8 |
PONDĚLÍ |
1.9.2003 |
ÚTERÝ |
30.9.2003 |
30 |
Září |
9 |
STŘEDA |
1.10.2003 |
PÁTEK |
31.10.2003 |
31 |
Říjen |
10 |
SOBOTA |
1.11.2003 |
NEDĚLE |
30.11.2003 |
30 |
Listopad |
11 |
PONDĚLÍ |
1.12.2003 |
STŘEDA |
31.12.2003 |
31 |
Prosinec |
12 |