Skip to content
NextLytics
Megamenü_2023_Über-uns

Shaping Business Intelligence

Ob clevere Zusatzprodukte für SAP BI, Entwicklung aussagekräftiger Dashboards oder Implementierung KI-basierter Anwendungen - wir gestalten zusammen mit Ihnen die Zukunft von Business Intelligence. 

Megamenü_2023_Über-uns_1

Über uns

Als Partner mit tiefem Prozess-Know-how, Wissen der neuesten SAP-Technologien sowie hoher sozialer Kompetenz und langjähriger Projekterfahrung gestalten wir die Zukunft von Business Intelligence auch in Ihrem Unternehmen.

Megamenü_2023_Methodik

Unsere Methodik

Die Mischung aus klassischem Wasserfallmodell und agiler Methodik garantiert unseren Projekten eine hohe Effizienz und Zufriedenheit auf beiden Seiten. Erfahren Sie mehr über unsere Vorgehensweise.

Produkte
Megamenü_2023_NextTables

NextTables

Daten in SAP BW out of the Box bearbeiten: Mit NextTables wird das Editieren von Tabellen einfacher, schneller und intuitiver, egal ob Sie SAP BW on HANA, SAP S/4HANA oder SAP BW 4/HANA nutzen.

Megamenü_2023_Connector

NextLytics Connectoren

Die zunehmende Automatisierung von Prozessen erfordert die Konnektivität von IT-Systemen. Die NextLytics Connectoren ermöglichen eine Verbindung Ihres SAP Ökosystems mit diversen open-source Technologien.

IT-Services
Megamenü_2023_Data-Science

Data Science & Engineering

Bereit für die Zukunft? Als starker Partner stehen wir Ihnen bei der Konzeption, Umsetzung und Optimierung Ihrer KI-Anwendung zur Seite.

Megamenü_2023_Planning

SAP Planning

Wir gestalten neue Planungsanwendungen mithilfe von SAP BPC Embedded, IP oder  SAC Planning, die einen Mehrwert für Ihr Unternehmen schaffen.

Megamenü_2023_Dashboarding

Dashboarding

Mit unserer Expertise verhelfen wir Ihnen auf Basis von Tableau, Power BI, SAP Analytics Cloud oder SAP Lumira zu aussagekräftigen Dashboards. 

Megamenü_2023_Data-Warehouse-1

SAP Data Warehouse

Planen Sie eine Migration auf SAP HANA? Wir zeigen Ihnen, welche Herausforderungen zu beachten sind und welche Vorteile eine Migration bringt.

Business Analytics
Megamenü_2023_Procurement

Procurement Analytics

Transparente und valide Zahlen sind vor allem in Unternehmen mit dezentraler Struktur wichtig. SAP Procurement Analytics ermöglicht die Auswertung von SAP ERP-Daten in SAP BI.

Megamenü_2023_Reporting

SAP HR Reporting & Analytics

Mit unserem Standardmodell für Reporting von SAP HCM mit SAP BW beschleunigen Sie administrative Tätigkeiten und stellen Daten aus verschiedenen Systemen zentral und valide zur Verfügung.

Megamenü_2023_Dataquality

Data Quality Management

In Zeiten von Big Data und IoT kommt der Vorhaltung einer hohen Datenqualität eine enorm wichtige Bedeutung zu. Mit unserer Lösung für Datenqualitätsmanagement (DQM) behalten Sie stets den Überblick.

Karriere
Megamenü_2023_Karriere-2b

Arbeiten bei NextLytics

Wenn Du mit Freude zur Arbeit gehen möchtest und dabei Deine berufliche und persönliche Weiterentwicklung nicht zu kurz kommen soll, dann bist Du bei uns genau richtig! 

Megamenü_2023_Karriere-1

Berufserfahrene

Zeit für etwas Neues? Gehe Deinen nächsten beruflichen Schritt und gestalte Innovation und Wachstum in einem spannenden Umfeld zusammen mit uns!

Megamenü_2023_Karriere-5

Berufseinsteigende

Schluss mit grauer Theorie - Zeit, die farbenfrohe Praxis kennenzulernen! Gestalte bei uns Deinen Einstieg ins Berufsleben mit lehrreichen Projekten und Freude an der Arbeit.

Megamenü_2023_Karriere-4-1

Studierende

Du möchtest nicht bloß die Theorie studieren, sondern Dich gleichzeitig auch praktisch von ihr überzeugen? Teste mit uns Theorie und Praxis und erlebe wo sich Unterschiede zeigen.

Megamenü_2023_Karriere-3

Offene Stellen

Hier findest Du alle offenen Stellenangebote. Schau Dich um und bewirb Dich - wir freuen uns! Falls keine passende Stelle dabei ist, sende uns gerne Deine Initiativbewerbung zu.

Blog
NextLytics Newsletter Teaser
Hier für unseren monatlichen Newsletter anmelden!
Newsletter abonnieren
 

CASE in SAP HANA-Ablaufsteuerung von SQLScript Transformationsroutinen

In diesem Artikel lernen Sie, wie Sie IF ELSE Konstrukte in Ihrer SQLScript Transformationsroutine umsetzen können. Denn eigentlich sind in SQL SELECT Statements keine IF ELSE Anweisungen vorgesehen. Allerdings können Sie auch eine native SQL Anweisung nutzen, um dasselbe Ziel zu erreichen. Wir zeigen Ihnen, wie es geht.

So können Sie die native CASE WHEN Anweisung nutzen, um die IF - THEN - ELSE Logik in Ihren SQL Statements abzubilden. Nachfolgend stelle ich diese im Detail vor. Anschließend illustriere ich die Funktionsweise anhand eines praktischen Beispiels.

Syntax

Die Syntax der CASE WHEN Anweisung lautet wie folgt.

CASE
WHEN Bedingung1 THEN Ergebnis1
WHEN Bedingung2 THEN Ergebnis2
WHEN BedingungN THEN ErgebnisN
ELSE Ergebnis
END;

Bei den Bedingungen können Sie die folgenden Vergleichsoperatoren verwenden:

Operator

Beschreibung

=

Gleich

>

Größer als

<

Kleiner als

>=

Größer / gleich

<=

Kleiner / gleich

!=, <>

Ungleich

 

Darüber hinaus können Sie die logischen Operatoren OR, AND sowie NOT verwenden.

<Bedingung> ::= <Bedingung> OR <Bedingung> | <Bedingung> AND <Bedingung>
| NOT <Bedingung> | ( <Bedingung> ) |

Wenn Sie mehrere Operatoren verwenden, werden diese in einer bestimmten Reihenfolge ausgeführt. Zuerst werden die Vergleichsoperatoren wie = oder > ausgewertet. Anschließend werden die logischen Operatoren ausgewertet. Dabei hat der NOT-Operator Vorrang gegenüber AND und OR. Der OR Operator hat die niedrigste Priorität. Sie können diese Reihenfolge übersteuern, indem Sie Klammern verwenden. Bedingungen in Klammern werden immer zuerst ausgewertet.

Die CASE Anweisung funktioniert ähnlich wie eine IF-THEN-ELSE-Anweisung. Das System durchläuft die Bedingungen und gibt einen Wert zurück, wenn die erste Bedingung erfüllt ist. Sobald eine Bedingung erfüllt ist, hört der Vorgang auf und das Ergebnis wird zurückgegeben. Wenn keine Bedingungen erfüllt sind, wird der Wert in der ELSE-Klausel zurückgegeben. Falls kein ELSE-Teil definiert wurde und keine Bedingungen erfüllt sind, wird NULL zurückgegeben.

Reihenfolge der Auswertung

In Zusammenhang mit SAP HANA ist der folgende Sachverhalt interessant. Da die Datenbank zur Verbesserung der Performance einige Abkürzungen nimmt, kann nicht garantiert werden, ob alle WHEN-Klauseln ausgewertet werden.

Betrachten wir das folgende Beispiel, wobei b für Bedingung und e für Ergebnis steht.


CASE 
WHEN b1 THEN e1 
WHEN b2 THEN e2 
ELSE e3 
END

In einer HANA Datenbank können b1, e1, b2, e2 und e3 in beliebiger Reihenfolge ausgewertet werden. Nehmen wir an, dass b1 immer TRUE zurückgeben würde und e2 immer eine Ausnahme auslöst.

Wenn b1 zuerst überprüft wird und TRUE zurückgibt, wird e1 ausgewertet und als Ergebnis des CASE-Ausdrucks zurückgegeben. Die restlichen Anweisungen werden nie durchlaufen, sodass e2 keine Ausnahme auslösen würde. Falls jedoch e2 zuerst ausgewertet wird, wird eine Ausnahme ausgelöst. Daher können die restlichen Bedingungen nicht mehr überprüft werden.


Steigern Sie die Leistung Ihres BW mit SQLScript

SAP SQLScript Whitepaper


Beispiel

Zum besseren Verständnis möchte ich ein praktisches Beispiel anbringen. Dabei sollen die Kunden anhand des Vermögens segmentiert werden.

Kunden Segmente

Uns stehen folgende Ausgangsdaten zur Verfügung:

Kunde

Vermögen

Währung

1000

100.000.000 

EUR

2000

50.000.000 

EUR

3000

30.000.000 

EUR

4000

5.000.000 

EUR

5000

4.999.999 

EUR

6000

2.000.000 

EUR

7000

1.000.000 

EUR

8000

500.000 

EUR

 

Als Ergebnis würden wir folgende Segmentierung erwarten:

Kunde

Vermögen

Währung

Kategorie

1000

100.000.000 

EUR

A

2000

50.000.000 

EUR

B

3000

30.000.000 

EUR

B

4000

5.000.000 

EUR

B

5000

4.999.999 

EUR

C

6000

2.000.000 

EUR

C

7000

1.000.000 

EUR

C

8000

500.000 

EUR

D

 

Die Segmentierung wird mithilfe der CASE WHEN Anweisung vorgenommen:

METHOD PROCEDURE BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY.
OUTTAB = SELECT "/BIC/ZDRCLNT",
CASE
WHEN AMOUNT > 50000000 THEN 'A' --Ultra High Net Worth
WHEN AMOUNT BETWEEN 5000000 AND 50000000 THEN 'B' --Very High Net Worth
WHEN AMOUNT BETWEEN 1000000 AND 4999999 THEN 'C' --High Net Worth
ELSE 'D' --Affluent
END AS "/BIC/ZDRCAT",
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

ERRORTAB = SELECT '' AS ERROR_TEXT, '' AS SQL__PROCEDURE__SOURCE__RECORD FROM DUMMY WHERE DUMMY <> 'X';
ENDMETHOD.

Das führt zum folgenden Ergebnis:

Output table

Die Kundensegmentierung kann anschließend in einer Query ausgewertet werden:

Query Ergebnis

CASE in SAP HANA - Unser Fazit

Obwohl im nativen SQL keine IF Anweisungen vorgesehen sind, können Sie das gewünschte Ergebnis mit CASE WHEN erreichen. Beachten Sie jedoch bitte, dass die Reihenfolge in der die Bedingungen geprüft werden, zufällig ist. Daher sollten Sie immer Bedingungen definieren, die sich gegenseitig ausschließen und das Ergebnis immer eindeutig ist. Ich hoffe, dass Ihnen dieser Beitrag geholfen hat.

Planen Sie einen Umstieg auf SQLScript und benötigen Sie Unterstützung bei der Planung der richtigen Strategie? Oder benötigen Sie erfahrene Entwickler zur Umsetzung Ihrer Anforderungen? Zögern Sie bitte nicht, uns zu kontaktieren - wir beraten Sie gerne.

Erfahren Sie mehr über  SAP HANA SQLScript

, ,

avatar

Chris Fidanidis

Chris ist seit 2007 im SAP BW-Umfeld tätig. In diesen Jahren hat er mehrere Planungsprojekte umgesetzt und dabei die diversesten SAP-Tools genutzt, wie z.B. SAP BSP, SAP BW-IP, SAP BPC, SAP BW Embedded BPC. Erfahrungen hat er vor allem als Entwickler, Architekt, Projekt- bzw. Teamleiter sammeln können. Privat spielt er gerne Basketball und grillt wann immer es geht.

Sie haben eine Frage zum Blog?
Fragen Sie Chris Fidanidis

Gender Hinweis Aufgrund der besseren Lesbarkeit wird im Text das generische Maskulinum verwendet. Gemeint sind jedoch immer alle Menschen.

Blog - NextLytics AG 

Welcome to our blog. In this section we regularly report on news and background information on topics such as SAP Business Intelligence (BI), SAP Dashboarding with Lumira Designer or SAP Analytics Cloud, Machine Learning with SAP BW, Data Science and Planning with SAP Business Planning and Consolidation (BPC), SAP Integrated Planning (IP) and SAC Planning and much more.

Informieren Sie mich über Neuigkeiten

Verwandte Beiträge

Letzte Beiträge