So dynamisierst Du native SQL-Abfragen mit Power Query in Excel

Поделиться
HTML-код
  • Опубликовано: 9 ноя 2024

Комментарии • 26

  • @eugenherz7647
    @eugenherz7647 9 месяцев назад

    Hallo Lars, besten Dank. Trifft genau die Anfrage. Liebe Grüße

    • @LarsSchreiber
      @LarsSchreiber  9 месяцев назад

      Hi Eugen, das freut mich sehr. Die Frage ist natürlich, WARUM Du das als SQL definieren willst, und nicht via Power Query erstellen willst (das foldet im Zweifel auch zurück und wird in SQL übersetzt), aber so wie gezeigt, würde ich Deine Anfrage umsetzen 😉

    • @eugenherz7647
      @eugenherz7647 9 месяцев назад

      Davon erhoffe ich mir einen Performance Vorteil (Abfrage Logik wird auf dem SQL Server ausgeführt) und in der Praxis eine bessere Handhabung ohne in die Powerquery Schritte durch den Editor eingreifen zu müssen...

    • @LarsSchreiber
      @LarsSchreiber  9 месяцев назад

      @@eugenherz7647 Ist Dir Query Folding in Power Query ein Begriff? Sofern Du eine Datenbank abfragst, versuchst Power Query die erstellte Abfrage in SQL zu übersetzen, so dass die Datenbank lediglich das Ergebnis der Abfrage an PQ zurückschickt und die Last nicht auf Deinem Client liegt. Das klappt nicht immer, weil nicht alle Transformationen aus PQ in SQL übersetzt werden könnten, aber der von mir gezeigte Fall, sollte auch über Filter in PQ lösbar sein. Und auch das könnte man über die Excel-Oberfläche steuern. Denk mal in Ruhe drüber nach 😉

  • @KjeldSeegert
    @KjeldSeegert 9 месяцев назад

    Hey Lars, wieder mal super erklärt. Vielen Dank dafür

  • @deeperblue77
    @deeperblue77 9 месяцев назад

    Echt gut und sympathisch erklärt. Danke!

    • @LarsSchreiber
      @LarsSchreiber  9 месяцев назад

      Herzlichen Dank für Dein Feedback und Dein SuperThanks. Das war mein erstes, JEMALS ☺️ Liebe Grüße, Lars

  • @DennisManzke
    @DennisManzke 4 месяца назад +1

    Danke für die tolle Erklärung. An einem Punkt wäre ich allerdings fast gescheitert und zwar hat bei mir die Firewall gemeckert. Ich musste für ein erfolgreiches Verknüpfen des Parameters unter Abfrageoptionen und Datenschutz die einstellen, dass die Sicherheitsstufen ignoriert werden sollen.

    • @LarsSchreiber
      @LarsSchreiber  4 месяца назад

      Ja, der Hinweis auf die Formula.Firewall ist absolut richtig. Danke für diese Ergänzung 🙏

  • @Big_Paeschi
    @Big_Paeschi 9 месяцев назад

    Großes Kino!

  • @LieschenMueller1
    @LieschenMueller1 9 месяцев назад

    Hi Lars, sehr gut erklärt. Ich selber hab vor etwa zwei Jahre eine sehr ähnliche Lösung für mich entwickelt. Ein Usecase bei mir waren vor allen Dinge sehr große und lange Tabellen aus Datenbanken. Diese kann man dann zwar im ETL-Prozess in PowerQuery selbst "kürzen", aber die Performance war dann nicht mehr die Beste (auch das angepriesene "Query Folding" half nicht), daher musste ich das direkt über SQL-Statements lösen (z.B. auch Joins in die Datenbankabfrage als SQL direkt ausführen, was häufig viel schneller geht). Neben externen Parametern kann man aber natürlich auch errechnete Werte ins SQL einbauen (z.B. das Datum von heute), da hat man wirklich alle Freiheiten und kann wirklich "verrückte" Sache so umsetzen...

    • @LarsSchreiber
      @LarsSchreiber  9 месяцев назад

      Danke für das Teilen Deiner Erfahrung 🙏🙂

  • @katsche1974
    @katsche1974 5 месяцев назад

    Hallo Lars, vielen Dank für die sehr verständliche Darstellung der Lösungsansätze. Eigentlich reicht ja doch eigentlich der Weg, den du mit 2 Parametern bechrieben hast, denn der dürfte auch bei nur einem Parameter funktionieren.

    • @LarsSchreiber
      @LarsSchreiber  5 месяцев назад +1

      Ja, absolut. Ich steigere in meinen Videos gern die Komplexität. Die zweite Lösung deckt alle Anwendungsfälle ab!

  • @Horathyo
    @Horathyo Месяц назад

    Hallo Lars, super Video und Erklärung! Ich scheitere aktuell an einem Parameter vom Format "DATE" .... der Parameter wird mir im richtigen Format angezeigt. Nur wie muss ich die Syntax im SQL Query aufbauen? Hast Du da nen Tipp?

    • @LarsSchreiber
      @LarsSchreiber  Месяц назад

      Im Normallfall sollte die Syntax wie folgt aussehen:
      SELECT *
      FROM deine_tabelle
      WHERE dein_datum_feld = 'YYYY-MM-DD';
      Ich hoffe, das hilft Dir
      LG,
      Lars

    • @Horathyo
      @Horathyo Месяц назад

      @@LarsSchreiber Hi Lars, vielen Dank! Das Datum möchte ich als dynamisches Feld /Variable abfragen und im Select verwenden 🙂 ... da hakt es gerade an der Syntax,

    • @LarsSchreiber
      @LarsSchreiber  Месяц назад +1

      Bringt Dich das hier weiter?
      let
      Quelle = #date(2024,8,7),
      DatumInFormBringen = Date.ToText( Quelle, "YYYY-MM-DD" ),
      #"SQL-Statement" = "SELECT * FROM deine_tabelle WHERE dein_datum_feld = '"& DatumInFormBringen &"';"
      in
      #"SQL-Statement"
      Der Schritt Quelle muss sich das Datum irgendwoher holen. Also aus einer Excel-Zelle, oder wo auch immer du das herholen musst. Der Rest bringt das Datum in die nötige Form und baut es ins SQL-Statement ein, inklusive der für SQL notwendigen Hochkommata.
      Ich hoffe das hilft.

    • @Horathyo
      @Horathyo Месяц назад

      @@LarsSchreiber Vielen Dank! Werd ich gleich testen und meine Query umbauen!

  • @ThisIsScorefun
    @ThisIsScorefun 6 месяцев назад

    Top - Coole Sache

  • @Pittyplatsch42
    @Pittyplatsch42 9 месяцев назад

    Hallo Lars, ich finde deine Erklärung immer super!
    Leider scheint hier RUclips gerade den Ton zu unterdrücken.
    VG

    • @Pittyplatsch42
      @Pittyplatsch42 9 месяцев назад

      Neustart hat geholfen

    • @LarsSchreiber
      @LarsSchreiber  9 месяцев назад

      @@Pittyplatsch42dennoch danke für den Hilfeversuch ❤

  • @deeperblue77
    @deeperblue77 9 месяцев назад

    Thanks!