{"id":10647,"date":"2020-04-21T09:37:00","date_gmt":"2020-04-21T07:37:00","guid":{"rendered":"http:\/\/54.194.80.134.nip.io\/?p=10647"},"modified":"2023-03-30T22:56:40","modified_gmt":"2023-03-30T20:56:40","slug":"sqlscript-loesungsmuster","status":"publish","type":"post","link":"https:\/\/www.cubeserv.com\/de\/sqlscript-loesungsmuster\/","title":{"rendered":"SQLscript L\u00f6sungsmuster"},"content":{"rendered":"\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t

Lange danach gesucht? Jetzt gefunden!<\/h3>

Unsere \u00dcbersicht von typischen Problemen und L\u00f6sungen im Bereich von HANA SQLscript.\u00a0<\/p>

Die L\u00f6sungsmuster reichen dabei von rein sprachlichen Problemen (z.B. „mit welchem Sprachelement ermittle ich den ersten Eintrag“) \u00fcber formale Probleme (z.B. „wie wandle ich in SQLscript Zeitmerkmale um“) bis zu applikatorischen Anforderungen (z.B. „wie lese ich in SQLscript Stammdaten nach“).<\/p>

Die L\u00f6sungsmuster erheben nicht den Anspruch, die alleinige oder beste L\u00f6sung eines Problems zu sein, sondern sollen als Kopiervorlage dienen und Sie mit verschiedenen L\u00f6sungsans\u00e4tzen inspirieren.\u00a0Ihr Feedback zu Verbesserungen, Alternativen und Erg\u00e4nzungen ist jederzeit willkommen!<\/span><\/p>

Das Coding-Beispiel ist so formuliert, wie es typischerweise in einer AMDP-Routine vorkommen k\u00f6nnte. Diese Formulierung kann allerdings in einem HANA-Studio-SQL-Fenster oder im SQL-Editor der ABAP-Transaktion DBACOCKPIT nicht verwendet werden (da dort nicht definiert ist, was die inTab sein soll). Es ist daher an einigen Stellen auch ein Coding-Beispiel angegeben, das man im SQL-Fenster verwendet k\u00f6nnte. In diesen Beispielen sind zus\u00e4tzliche Zeilen, die die Beispieldaten aufbauen.<\/span><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t

Grundlegende Sprachelemente:<\/b><\/span><\/p>

  1. Initialwerte<\/a><\/li>
  2. Tempor\u00e4re Tabellen (Tabellenvariablen)<\/a><\/li>
  3. Umbenennen von Spalten<\/a><\/li>
  4. Vereinigung gleicher Tabellen<\/a><\/li>
  5. Join zweier Tabellen<\/a><\/li>
  6. Fallunterscheidung<\/a><\/li>
  7. Variable definieren, f\u00fcllen und benutzen<\/a><\/li>
  8. NULL-Werte vermeiden<\/a><\/li>
  9. Anzahl Zeilen z\u00e4hlen<\/a><\/li>
  10. Bedingungen<\/a><\/li>
  11. Summe, Max, Min, …<\/a><\/li>
  12. F\u00fchrende 0en ersetzen<\/a><\/li>
  13. Pr\u00fcfung auf Ziffern<\/a><\/li>
  14. Verdichten von Leerzeichen<\/a><\/li>
  15. Entfernen ung\u00fcltiger Zeichen<\/a><\/li>
  16. Ersten Datensatz ermitteln<\/a><\/li>
  17. Rang ermitteln<\/a><\/li>
  18. Zugriff auf vorherige oder nachfolgende Zeile<\/a><\/li><\/ol>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\t\t

    Applikatorische L\u00f6sungen:<\/b><\/span><\/p>

    1. Datumsrechnung<\/a><\/li>
    2. Herleitung eines aktuellen UTC-Zeitstempels<\/a><\/li>
    3. Herleitung der Request-TSN<\/a><\/li>
    4. Aktuellste Daten eines wo-ADSO<\/a><\/li>
    5. Nachlesen von Stammdaten<\/a><\/li>
    6. Im AMDP SQL-Fehler abfangen<\/a><\/li>
    7. Im AMDP eigene SQL-Fehlermeldungen werfen<\/a><\/li>
    8. Im AMDP g\u00fcltige S\u00e4tze verbuchen, fehlerhafte S\u00e4tze in Errorstack schreiben<\/a><\/li><\/ol>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t
      \n\t\t\t

      Initialwerte<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
      \n\t\t\t\t
      \n\t\t\t\t\t\t\t

      Beschreibung<\/h3>

      Zeichenartige Spalten mit “ initalisieren, Nummern mit 0.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t

      \n\t\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t
      \n\t\t\t

      Coding Beispiel<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t
      \n\t\t\t
      \n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t
      \n\t\t\t
      outtab =\r\nSELECT\r\n'' AS "\/BIC\/STRASSE",\r\n0  AS "\/BIC\/HAUSNR"\r\nFROM :intab; <\/code><\/pre>