Ich habe eine Abfrage geschrieben, um ein bestimmtes Datum auszuwählen.Abfrage, um vollständige Quartalstermine basierend auf dem heutigen Datum auszuwählen
Wenn ich die Abfrage am ersten steuerlichen Montag, d. H. Ersten Montag nach Quartalsende, führe, sollte sie die gesamten Daten des vorherigen Monats auswählen.
Wenn ich die Abfrage an einem anderen Montag ausführen, dann sollte es die Daten für das aktuelle Viertel bis zum heutigen Datum auswählen.
Es folgt die Abfrage, die ich versucht habe:
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;
ich die Bedingungen herausgefunden habe, aber ich bin nicht in der Lage Syntax zu entwerfen für Termine auswählen.
Es würde mir helfen, wenn jemand einen Hinweis geben könnte!
Es folgt Tabellenstruktur:
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
Die relativen Felder vorhanden sind für Strom und 0, -1, -2 für die jeweiligen Vormonaten Wochen usw.
Bitte veröffentlichen Sie die Struktur Ihrer Tabellen und ziehen Sie in Betracht, das mysql-Tag aus Ihrer Frage zu entfernen. –