Das Schöne an CDS-Views sind, dass ein SELECT genauso wie bei einer transparenten Tabelle funktioniert. So kann man sie in unterschiedlichen Kontexten mit verschiedenen Parametern in der WHERE-Bedingung verwenden, mit SELECT-FOR ALL ENTRIES IN verwenden oder in weitere CDS-Views einbauen. In ABAP ging das meistens nur mit Copy&Paste oder mit Dutzenden von Selektionsoptionen.Sollen zukünftige Datenbankselektionen mit CDS Views gemacht werden, obwohl sie auch in ABAP funktionieren?
Zusätzlich Platz auf der Datenbank nehmen Views nicht weg.Werden CDS Views zusätzlichen Speicherplatz benötigen (ist ja nur eine Sicht eigentlich)?
retsch hat geschrieben: ↑19.01.2023 11:16Ergänzend würde ich noch gerne wissen:
Ich habe eine interne Tabelle erhalten über SELECT auf eine Datenbanktabelle.
Zwei Spalten mit Startdatum und Enddatum habe ich. Nun gibt es eine dritte Spalte, die die Anzahl der Monate zwischen Startdatum und Enddatum berechnen soll.
Ich würde es über einen Loop machen wollen und im Loop ein Fuba aufrufen.
Geht das vielleicht besser, vl in einem CDS View?
Code: Alles auswählen.
define view zstart_end as select from my_table {
start_date,
cast( substring(start_date, 0, 4) as abap.numc(4) ) as start_year,
cast( substring(start_date, 2, 6) as abap.numc(2) ) as start_month,
end_date,
cast( substring(end_date, 0, 4) as abap.numc(4) ) as end_year,
cast( substring(end_date, 2, 6) as abap.numc(2) ) as end_month
}
Code: Alles auswählen.
define view zdiff_in_months as select from zstart_end {
start_date,
end_date,
12 * ( end_year - start_year ) + end_month - start_month as diff_in_months
}