Я написал запрос для выбора конкретных дат.Запрос на выбор даты полного квартала на основе сегодняшней даты
Если я запустил запрос в первый финансовый понедельник, то есть в первый понедельник после четвертого конца, он должен выбрать все даты в предыдущем месяце.
Если я запустил запрос в другой понедельник, он должен выбрать данные для текущего квартала до сегодняшней даты.
Ниже приводится запрос, который я пробовал:
SELECT
CASE
WHEN Q.GL_PERIOD_NUMBER IN (1,4,7,10,12) AND Q.DAY_NAME='MONDAY' AND Q.MONTHEND_FLAG='Y' THEN 'FULL_QUARTER'
WHEN Q.GL_PERIOD_NUMBER IN (2,3,5,6,8,9,11) AND Q.DAY_NAME='MONDAY' AND Q.MONTHEND_FLAG='N' THEN 'PARTIAL QUARTER'
ELSE 'NO RUN'
END RUN
FROM
(SELECT A.GL_MONTHEND_FLAG MONTHEND_FLAG, B.DAY_NAME DAY_NAME , B.gl_period_number GL_PERIOD_NUMBER
FROM
(SELECT TRIM(GL_MONTHEND_FLAG) GL_MONTHEND_FLAG
FROM RSE.RSE_CD_D_CALENDAR WHERE TRUNC(CALENDAR_DATE)=TRUNC(SYSDATE-12)) A,
(SELECT TRIM(DAY_NAME) DAY_NAME, gl_period_number GL_PERIOD_NUMBER
FROM RSE.RSE_CD_D_CALENDAR WHERE TRUNC(CALENDAR_DATE)=TRUNC(SYSDATE-10)) B) Q;
Я выяснил условия, но я не в состоянии разработать синтаксис для выбора даты.
Это помогло бы мне, если бы кто-нибудь мог намекнуть!
Ниже приводится структура таблицы:
desc RSE_CD_D_CALENDAR
Name Null Type
------------------------- ---- -----------------
CALENDAR_DATE DATE
DATE_REFERENCE VARCHAR2(10 CHAR)
GL_DAYEND_COMPLETE_FLAG VARCHAR2(1 CHAR)
DAY_OF_WEEK NUMBER
DAY_NAME VARCHAR2(15 CHAR)
DAY_NUMBER NUMBER
DW_PROCESSING_WEEK_ID NUMBER
DW_FISCAL_WEEK_ID NUMBER
CALENDAR_WEEK_NUMBER NUMBER
GL_WEEK_NUMBER NUMBER
GL_WEEKEND_FLAG VARCHAR2(1 CHAR)
GL_WEEKEND_COMPLETE_FLAG VARCHAR2(1 CHAR)
DW_MONTH_ID NUMBER
GL_PERIOD VARCHAR2(6 CHAR)
GL_PERIOD_NUMBER NUMBER
MONTH_SHORT_NAME VARCHAR2(3 CHAR)
MONTH_LONG_NAME VARCHAR2(15 CHAR)
GL_PERIOD_KEY NUMBER
GL_MONTHEND_FLAG VARCHAR2(1 CHAR)
GL_MONTHEND_COMPLETE_FLAG VARCHAR2(1 CHAR)
DW_QTR_ID NUMBER
QTR_NUMBER NUMBER
GL_QTR_END_FLAG VARCHAR2(1 CHAR)
GL_QTR_END_COMPLETE_FLAG VARCHAR2(1 CHAR)
GL_YEAR NUMBER
GL_YEAREND_FLAG VARCHAR2(1 CHAR)
GL_YEAREND_COMPLETE_FLAG VARCHAR2(1 CHAR)
MANUAL_ADJ_COMPLETE_FLAG VARCHAR2(1 CHAR)
PROCESSING_WEEK_RELATIVE NUMBER
FISCAL_WEEK_RELATIVE NUMBER
MONTH_RELATIVE NUMBER
QTR_RELATIVE NUMBER
YEAR_RELATIVE NUMBER
CALENDAR_MONTH_NUMBER NUMBER
CALENDAR_MONTH_SHORT_NAME VARCHAR2(4000)
BILLING_DAY_FLAG VARCHAR2(1)
QUARTER_NAME VARCHAR2(6)
DW_CALENDAR_MONTH_ID NUMBER
CALENDAR_MONTH_RELATIVE NUMBER
CALCULATION_DATE DATE
BILLING_DAY_USA NUMBER
BILLING_DAY NUMBER
Относительные поля присутствуют для тока и 0, -1, -2 для соответствующих предыдущих месяцев недели и т.д.
Пожалуйста, разместите структуру своих таблиц и подумайте об удалении тега mysql из вашего вопроса. –