Wie legen Sie einen Zellenwert unter Verwendung des Ergebnisses einer parametrisierten SQL-Abfrage mit Power Query fest?

2168
Juliano Nunes Silva Oliveira

Ich habe ein Arbeitsblatt mit den Spalten A, B und C. Dann muss ich eine Abfrage auf meinem SQL Server ausführen und die Werte aus den Spalten A und B verwenden, um den Wert zu finden, der in Spalte C platziert werden sollte.

Ich habe die Abfrage so erstellt:

SELECT * FROM Tabellenname

Dann wurden die Filterschritte hinzugefügt, wobei zwei Parameter berücksichtigt wurden, die ich im Power Query Editor erstellt habe.

Wie kann ich nun dieses vorhandene Arbeitsblatt mit der Abfrage verbinden und die Zellenwerte als Parameter übergeben, um das Ergebnis zu erhalten (einzelne Zeile)?

AKTUALISIEREN

Weitere Informationen hinzufügen ...

Mein Arbeitsblatt sieht so aus:

Column A | Column B | Column C 1 | 223 | ? 2 | 545 | ? 8 | 542 | ?  

Dann hat meine Datenbanktabelle alle diese 3 Spalten (zusammen mit einigen anderen, die nicht wichtig sind). Ich brauche die Spalten A und B aus dem Arbeitsblatt mit den entsprechenden Spalten A und B in der Datenbanktabelle zu vergleichen, um den Wert der Spalte C aus der Datenbank zurückzugeben Datenbank (ohne die gesamte Tabelle in ein neues Arbeitsblatt zu importieren).

1

3 Antworten auf die Frage

0
Rajesh S

Da Sie nicht angegeben haben, ob Sie eine Verbindung zu MY SQL hergestellt haben oder nicht, möchte ich Ihnen daher den einfachsten Prozess zum Exportieren von Excel-Dateien in MY Sql zeigen.

Befolgen Sie diese Schritte, um Excel-Arbeitsblattdaten in eine MySQL-Tabelle zu exportieren.

  1. Wählen Sie die Registerkarte Daten, klicken Sie auf MySQL für Excel, um den Aufgabenbereich von MySQL für Excel zu öffnen.

  2. Doppelklicken Sie unter "Öffnen Sie eine MySQL-Verbindung" auf die vorhandene lokale oder Remote-Verbindung, um die verfügbaren Datenbankschemas anzuzeigen.

  3. Wählen Sie Schema aus und klicken Sie auf Weiter, um alle Datenbankobjekte anzuzeigen.

  4. Wählen Sie dann die zu exportierenden Zellen im Arbeitsblatt aus, und klicken Sie auf Excel-Daten in neue Tabelle exportieren.

  5. Geben Sie jetzt an, ob die erste Zeile als Spaltenname verwendet werden soll.

  6. Geben Sie dann den Namen der eindeutigen Tabelle ein und wählen Sie die für die neue Tabelle zu verwendende Kollatierung aus.

  7. Wählen Sie die Primärschlüsselspalte.

  8. Wenden Sie die entsprechenden Optionen für die Spalten an.

  9. Klicken Sie abschließend auf Daten exportieren, um die neue Tabelle mit Daten zu erstellen.

Andere Methode ist ODBC zum Erstellen des DSN.

Hinweis ,,, die Select * von Tablename, zieht alle Datensätze aus der Tabelle für alle Spalten.

Da Sie mit Parameter so kämpfen, muss für die erfolgreiche Abfrage zuerst der Parameter deklariert werden.

Hier ist ein Beispiel.

DECLARE @Parameter VARCHAR(20) SET @Parameter = 'Amit'  SELECT * FROM Table WHERE Name = @Parameter 

Hoffe das hilft dir.

Das brauche ich nicht. Ich möchte die Daten des Arbeitsblatts nicht in die SQL Server-Datenbank importieren. Ich muss eine Datenbanktabelle abfragen, um einige Daten zu meinem Arbeitsblatt hinzuzufügen, aber die vorhandenen Daten des Arbeitsblatts als Parameter verwenden. Die Spalten A und B enthalten die Parameterwerte, und die Spalte C muss mit dem Ergebnis der SQL Server-Abfrage aktualisiert werden. Juliano Nunes Silva Oliveira vor 6 Jahren 0
@JulianoNunesSilvaOliveira, eigentlich habe ich zwei verschiedene Methoden vorgeschlagen. Exportieren Sie Excel Sheet für weitere Aktionen zuerst in SQL Server und zweitens das Erstellen von Parametern während der Abfrage. ABER dein Problem ist anders. Eigentlich möchten Sie QUERIED-Daten aus SQL Server in EXCEL einfügen. Und das ist einfach EXPORT nach EXCEL. Rajesh S vor 6 Jahren 0
Überprüfen Sie meine letzte Antwort. Dort habe ich zwei Methoden vorgeschlagen. Eine Methode ist das Exportieren nach Excel und der zweite Schritt, um abgefragte Daten als CSV-Datei in Excel Sheet einzufügen. Rajesh S vor 6 Jahren 0
Tut mir leid, wenn ich es nicht richtig verstehe, aber ich kann keinen festen Wert für die Parameter haben. Ich muss jede Zeile eines vorhandenen Arbeitsblatts abfragen und die Spalte C der jeweiligen Zeile aktualisieren. Juliano Nunes Silva Oliveira vor 6 Jahren 0
@JulianoNunesSilvaOliveira, hast du meine LETZTE LÖSUNG ausprobiert? Ich habe erst gestern gepostet! Rajesh S vor 6 Jahren 0
Ihre Lösung erfordert die Ausführung dieser Abfrage mit einem Tool wie SSMS. Sie verwendet einen festen Wert als Kriterium und gibt die Daten nicht an der richtigen Position zurück (Spalte C eines vorhandenen Arbeitsblatts in der entsprechenden Zeile der Filterwerte) welche Bereichsspalten A und B) ohne zusätzliche Schritte. Ich weiß, dass ich dies mit VBA und mit Import- / Exportfunktionen aus dem SSMS tun kann, aber meine Frage bezieht sich auf den Excel- und Power-Query-Editor, auf den der Fragetag verweist. Juliano Nunes Silva Oliveira vor 6 Jahren 0
@JulianoNunesSilvaOliveira, hast du schon davor geschrieben, dass du Power Query brauchst, um mitzumachen? Rajesh S vor 6 Jahren 0
Versteht mich nicht falsch, aber es ist in den Frage-Tags und ich habe den Abfrage-Editor erwähnt. Ich habe den "Power" -Teil im Fragentext wirklich vermisst, aber ich werde hinzufügen. Danke, dass du dir Zeit genommen hast. Juliano Nunes Silva Oliveira vor 6 Jahren 0
0
pat2015

Basierend auf dem, was ich Ihre Frage am besten verstehe, scheint es, als hätten Sie erfolgreich eine Parameterrized Query erstellt und höchstwahrscheinlich gestellt. für den Feldwert und Sie können die Ergebnisse abrufen, indem Sie Werte an ihn übergeben.

Nun müssen Sie den Zellenwert als Parameterwerte referenzieren.

Versuchen Sie diese Schritte.

  1. Wählen Sie die Tabelle Gehen Sie zur Registerkarte Design und gehen Sie zu Eigenschaften
  2. Klicken Sie auf die Schaltfläche neben Verbindungsname.
  3. Gehen Sie zur Registerkarte "Definition". Wenn Sie eine parametrisierte Abfrage richtig erstellt haben, sollte die Parameterschaltfläche für Sie aktiviert sein.
  4. Für die angegebenen Parameter wählen Sie nun das Optionsfeld "Den Wert aus der folgenden Zelle abrufen" und aktivieren Sie die Option "Automatisch aktualisieren", wenn sich der Zellenwert ändert.
  5. Klicken Sie in allen Dialogfeldern auf OK und schließen Sie das Fenster.

Idealerweise wird die Abfrage jetzt jedes Mal ausgeführt, wenn Sie die Werte in Ihren Excel-Blattzellen aktualisieren.

Siehe das folgende Beispiel basierend auf der MS Access-Datenbank. Ich hoffe, dass die Schritte auf SQL Server auch ähnlich sein sollten. Erforsche und experimentiere weiter. Hoffe das hilft.

Fast dort @ pat2015. Das Problem ist, dass mein Arbeitsblatt mehrere Zeilen für diese Spalten A und B hat. Daher kann ich keine feste Zeile im Parameterwert verwenden. Juliano Nunes Silva Oliveira vor 6 Jahren 0
@JulianoNunesSilvaOliveira ,, Pat hat Access Query vorgeschlagen, aber Sie haben SQL Server geschrieben !! Rajesh S vor 6 Jahren 0
Du hast recht @RajeshS. Ich habe nicht gesehen, dass er Access benutzt. Juliano Nunes Silva Oliveira vor 6 Jahren 0
0
Rajesh S

Nachstehend ist die bestmögliche Antwort, die ich Ihnen vorschlagen kann, nachdem ich den Kommentar zu meiner ersten Antwort und dem OP (von Ihnen gestellte Frage) erneut gelesen habe.

Methode 1: Exportieren von SQL-Abfragedaten nach Excel.

Klicken Sie während der Abfrage der Daten im Ergebnisfenster einfach auf die Zelle oben links, um Datensätze hervorzuheben, klicken Sie dann mit der rechten Maustaste auf Zelle oben links und klicken Sie auf "Ergebnisse speichern unter".

Sie können den besten zu exportierenden Dateityp auswählen, CSV-Datei.

Mit anderen Worten: Exportieren Sie SQL-Abfragedaten nach Excel.

Methode 2: Erstellen Sie eine Abfrageanweisung zum Exportieren nach Excel.

INSERT INTO OPENROWSET  ('Microsoft.Jet.OLEDB.4.0',  'Excel 9.0;Database=D:\Sales.xlsx;','SELECT * FROM Sales where Code = 1000') 

Andere ist unterhalb der geschriebenen Abfrage, die Daten direkt als CSV-Datei in Excel ablegt.

SELECT * FROM Sales where Code = 1000 INTO OUTFILE 'D:/Sales.CSV' FIELDS TERMINATED BY ','  ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

Hinweis: Ändern Sie Datei, Feldname und auch die Kriterien entsprechend Ihrer Datenbankstruktur.

Ich glaube, das wird dir helfen.