문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
기술문서:레퍼런스:쿼리:응용:calendar_query [2025/09/11 12:51] carlito76 |
기술문서:레퍼런스:쿼리:응용:calendar_query [2026/06/19 17:13] (현재) carlito76 |
||
|---|---|---|---|
| 줄 7: | 줄 7: | ||
| <note tip> | <note tip> | ||
| - | 최소 지원 버전은 약간의 차이가 있을 수 있습니다. | + | 최소 지원 버전은 약간의 차이가 있을 수 있습니다.\\ |
| + | - MySQL/ | ||
| + | - MSSQL, Oracle/ | ||
| </ | </ | ||
| ===== MySQL/ | ===== MySQL/ | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- MySQL 5.0.1 이상/ | + | /* |
| + | MySQL 5.0.1 이상/ | ||
| + | */ | ||
| SELECT | SELECT | ||
| - | MIN(CASE WHEN week = 1 THEN dt END) AS sun | + | MAX(CASE WHEN week = 1 THEN dt END) AS sun |
| - | , MIN(CASE WHEN week = 2 THEN dt END) AS mon | + | , MAX(CASE WHEN week = 2 THEN dt END) AS mon |
| - | , MIN(CASE WHEN week = 3 THEN dt END) AS tue | + | , MAX(CASE WHEN week = 3 THEN dt END) AS tue |
| - | , MIN(CASE WHEN week = 4 THEN dt END) AS wed | + | , MAX(CASE WHEN week = 4 THEN dt END) AS wed |
| - | , MIN(CASE WHEN week = 5 THEN dt END) AS thu | + | , MAX(CASE WHEN week = 5 THEN dt END) AS thu |
| - | , MIN(CASE WHEN week = 6 THEN dt END) AS fri | + | , MAX(CASE WHEN week = 6 THEN dt END) AS fri |
| - | , MIN(CASE WHEN week = 7 THEN dt END) AS sat | + | , MAX(CASE WHEN week = 7 THEN dt END) AS sat |
| FROM | FROM | ||
| (SELECT | (SELECT | ||
| 줄 30: | 줄 34: | ||
| (SELECT | (SELECT | ||
| DATE_ADD(a, | DATE_ADD(a, | ||
| + | , a | ||
| FROM | FROM | ||
| (SELECT | (SELECT | ||
| 줄 46: | 줄 51: | ||
| ) cal | ) cal | ||
| WHERE | WHERE | ||
| - | dt <= LAST_DAY(dt) | + | dt <= LAST_DAY(a) |
| ) cal | ) cal | ||
| GROUP BY | GROUP BY | ||
| 줄 57: | 줄 62: | ||
| ===== MSSQL ===== | ===== MSSQL ===== | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- MSSQL 2000 이상 | + | /* |
| + | MSSQL 2000 이상 | ||
| + | */ | ||
| SELECT | SELECT | ||
| - | MIN(CASE WHEN week = 1 THEN dt END) AS sun | + | MAX(CASE WHEN week = 1 THEN dt END) AS sun |
| - | , MIN(CASE WHEN week = 2 THEN dt END) AS mon | + | , MAX(CASE WHEN week = 2 THEN dt END) AS mon |
| - | , MIN(CASE WHEN week = 3 THEN dt END) AS tue | + | , MAX(CASE WHEN week = 3 THEN dt END) AS tue |
| - | , MIN(CASE WHEN week = 4 THEN dt END) AS wed | + | , MAX(CASE WHEN week = 4 THEN dt END) AS wed |
| - | , MIN(CASE WHEN week = 5 THEN dt END) AS thu | + | , MAX(CASE WHEN week = 5 THEN dt END) AS thu |
| - | , MIN(CASE WHEN week = 6 THEN dt END) AS fri | + | , MAX(CASE WHEN week = 6 THEN dt END) AS fri |
| - | , MIN(CASE WHEN week = 7 THEN dt END) AS sat | + | , MAX(CASE WHEN week = 7 THEN dt END) AS sat |
| FROM | FROM | ||
| (SELECT | (SELECT | ||
| 줄 97: | 줄 104: | ||
| ===== Oracle/ | ===== Oracle/ | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- Oracle 8i 이상/ | + | /* |
| + | Oracle 8i 이상/ | ||
| + | */ | ||
| SELECT | SELECT | ||
| - | MIN(DECODE(week, | + | MAX(DECODE(week, |
| - | , MIN(DECODE(week, | + | , MAX(DECODE(week, |
| - | , MIN(DECODE(week, | + | , MAX(DECODE(week, |
| - | , MIN(DECODE(week, | + | , MAX(DECODE(week, |
| - | , MIN(DECODE(week, | + | , MAX(DECODE(week, |
| - | , MIN(DECODE(week, | + | , MAX(DECODE(week, |
| - | , MIN(DECODE(week, | + | , MAX(DECODE(week, |
| FROM | FROM | ||
| (SELECT | (SELECT | ||
| 줄 115: | 줄 124: | ||
| (SELECT | (SELECT | ||
| TRUNC(SYSDATE, | TRUNC(SYSDATE, | ||
| - | -- TO_DATE(' | + | -- TO_DATE(' |
| FROM | FROM | ||
| DUAL) cal | DUAL) cal | ||
| 줄 130: | 줄 139: | ||
| ===== PostgreSQL ===== | ===== PostgreSQL ===== | ||
| <sxh sql; gutter: true;> | <sxh sql; gutter: true;> | ||
| - | -- PostgreSQL 8.0 이상 | + | /* |
| + | PostgreSQL 8.0 이상 | ||
| + | */ | ||
| SELECT | SELECT | ||
| - | MIN(CASE WHEN week = 0 THEN dt END) AS sun | + | MAX(CASE WHEN week = 0 THEN dt END) AS sun |
| - | , MIN(CASE WHEN week = 1 THEN dt END) AS mon | + | , MAX(CASE WHEN week = 1 THEN dt END) AS mon |
| - | , MIN(CASE WHEN week = 2 THEN dt END) AS tue | + | , MAX(CASE WHEN week = 2 THEN dt END) AS tue |
| - | , MIN(CASE WHEN week = 3 THEN dt END) AS wed | + | , MAX(CASE WHEN week = 3 THEN dt END) AS wed |
| - | , MIN(CASE WHEN week = 4 THEN dt END) AS thu | + | , MAX(CASE WHEN week = 4 THEN dt END) AS thu |
| - | , MIN(CASE WHEN week = 5 THEN dt END) AS fri | + | , MAX(CASE WHEN week = 5 THEN dt END) AS fri |
| - | , MIN(CASE WHEN week = 6 THEN dt END) AS sat | + | , MAX(CASE WHEN week = 6 THEN dt END) AS sat |
| FROM | FROM | ||
| (SELECT | (SELECT | ||