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 😉
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...
@@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 😉
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.
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...
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.
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?
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
@@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,
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.
Hallo Lars, besten Dank. Trifft genau die Anfrage. Liebe Grüße
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 😉
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...
@@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 😉
Hey Lars, wieder mal super erklärt. Vielen Dank dafür
Sehr gerne!
Echt gut und sympathisch erklärt. Danke!
Herzlichen Dank für Dein Feedback und Dein SuperThanks. Das war mein erstes, JEMALS ☺️ Liebe Grüße, Lars
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.
Ja, der Hinweis auf die Formula.Firewall ist absolut richtig. Danke für diese Ergänzung 🙏
Großes Kino!
Herzlichen Dank ☺️
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...
Danke für das Teilen Deiner Erfahrung 🙏🙂
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.
Ja, absolut. Ich steigere in meinen Videos gern die Komplexität. Die zweite Lösung deckt alle Anwendungsfälle ab!
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?
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
@@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,
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.
@@LarsSchreiber Vielen Dank! Werd ich gleich testen und meine Query umbauen!
Top - Coole Sache
Hallo Lars, ich finde deine Erklärung immer super!
Leider scheint hier RUclips gerade den Ton zu unterdrücken.
VG
Neustart hat geholfen
@@Pittyplatsch42dennoch danke für den Hilfeversuch ❤
Thanks!