P_SPP_TrainingDate01 is a Composite CDS View in SAP S/4HANA. It reads from 2 data sources (I_CalendarDate, P_SPP_TrainingPeriod) and exposes 7 fields with key field CalendarDate.
@AbapCatalog.sqlViewName: 'PSDSPPTD01'
@AbapCatalog.preserveKey:true@AbapCatalog.compiler.compareFilter:true@ClientHandling.algorithm: #SESSION_VARIABLE@VDM.private: true@VDM.viewType: #COMPOSITEdefineview P_SPP_TrainingDate01
asselectfrom I_CalendarDate as CD
leftouterjoin P_SPP_TrainingPeriod as TP
on TP.CalendarDate = TP.CalendarDate
{
key CD.CalendarDate,
YearMonth,
YearQuarter,
CalendarWeek,
CalendarMonth,
CalendarQuarter,
cast(
casewhen CalendarDay >= '01' and CalendarDay <= '10'
then 1
when CalendarDay >= '11' and CalendarDay <= '20'
then 2
else 3
endas sp_pom ) as PartOfMonth,
cast(
casewhen ( CalendarMonth = '01' or CalendarMonth = '04' or CalendarMonth = '07' or CalendarMonth = '10' )
and ( CalendarDay >= '01' and CalendarDay <= '10' )
then 1
when ( CalendarMonth = '01' or CalendarMonth = '04' or CalendarMonth = '07' or CalendarMonth = '10' )
and ( CalendarDay >= '11' and CalendarDay <= '20' )
then 2
when ( CalendarMonth = '01' or CalendarMonth = '04' or CalendarMonth = '07' or CalendarMonth = '10' )
and ( CalendarDay >= '21' )
then 3
when ( CalendarMonth = '02' or CalendarMonth = '05' or CalendarMonth = '08' or CalendarMonth = '11' )
and ( CalendarDay >= '01' and CalendarDay <= '10' )
then 4
when ( CalendarMonth = '02' or CalendarMonth = '05' or CalendarMonth = '08' or CalendarMonth = '11' )
and ( CalendarDay >= '11' and CalendarDay <= '20' )
then 5
when ( CalendarMonth = '02' or CalendarMonth = '05' or CalendarMonth = '08' or CalendarMonth = '11' )
and ( CalendarDay >= '21' )
then 6
when ( CalendarMonth = '03' or CalendarMonth = '06' or CalendarMonth = '09' or CalendarMonth = '12' )
and ( CalendarDay >= '01' and CalendarDay <= '10' )
then 7
when ( CalendarMonth = '03' or CalendarMonth = '06' or CalendarMonth = '09' or CalendarMonth = '12' )
and ( CalendarDay >= '11' and CalendarDay <= '20' )
then 8
when ( CalendarMonth = '03' or CalendarMonth = '06' or CalendarMonth = '09' or CalendarMonth = '12' )
and ( CalendarDay >= '21' )
then 9
endas sp_poq) as PartOfQuarter,
left( dats_add_months( CD.CalendarDate, -1,'FAIL' ), 6 ) as Previous1YearMonth,
cast(
casewhen CalendarQuarter = '1'
then concat( left( dats_add_months( CD.CalendarDate, -12,'FAIL' ), 4 ), '4' )
when CalendarQuarter = '2'
then concat(CalendarYear, '1')
when CalendarQuarter = '3'
then concat(CalendarYear, '2')
else
concat(CalendarYear, '3')
endas vdm_yearquarter) as Previous1YearQuarter
}
where CD.CalendarDate >= TP.TrainingStartDate
and CD.CalendarDate < TP.TrainingEndDate
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CALENDARDATE",
"P_SPP_TRAININGPERIOD"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"VERSION":0
}
}*/