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

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 26

  • @eugenherz7647
    @eugenherz7647 10 місяців тому

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

    • @LarsSchreiber
      @LarsSchreiber  10 місяців тому

      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 10 місяців тому

      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  10 місяців тому

      @@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 10 місяців тому

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

  • @deeperblue77
    @deeperblue77 10 місяців тому

    Thanks!

  • @deeperblue77
    @deeperblue77 10 місяців тому

    Echt gut und sympathisch erklärt. Danke!

    • @LarsSchreiber
      @LarsSchreiber  10 місяців тому

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

  • @LieschenMueller1
    @LieschenMueller1 10 місяців тому

    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  10 місяців тому

      Danke für das Teilen Deiner Erfahrung 🙏🙂

  • @DennisManzke
    @DennisManzke 5 місяців тому +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  5 місяців тому

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

  • @Horathyo
    @Horathyo 2 місяці тому

    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  2 місяці тому

      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 2 місяці тому

      @@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  2 місяці тому +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 2 місяці тому

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

  • @Big_Paeschi
    @Big_Paeschi 10 місяців тому

    Großes Kino!

  • @katsche1974
    @katsche1974 6 місяців тому

    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  6 місяців тому +1

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

  • @Pittyplatsch42
    @Pittyplatsch42 10 місяців тому

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

    • @Pittyplatsch42
      @Pittyplatsch42 10 місяців тому

      Neustart hat geholfen

    • @LarsSchreiber
      @LarsSchreiber  10 місяців тому

      @@Pittyplatsch42dennoch danke für den Hilfeversuch ❤

  • @ThisIsScorefun
    @ThisIsScorefun 7 місяців тому

    Top - Coole Sache