Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: SQL Abfrage in Tabellenblatt speichern?

SQL Abfrage in Tabellenblatt speichern?
Klaus
Hallo,
Ich würde gerne eine etwas komplexere SQL Abfrage an einen SQL Server senden und das Ergebnis als Datenbankabfrage in einem Tabellenblatt speichern. Ist das überhaupt in Exceö möglich?
Die Verbindung zum Server klappt sowohl unter Externe Daten Importieren / Daten Importieren als auch unter Neue Abfrage Erstellen.
Bei Daten Importieren bekomme ich nur eine Komplette tabelle und bei Neue Abfrage Erstellen kommt das Programm MSSQL Query ins spiel, wo ich aber keinen SQL Befehl absetzen kann obwohl ich die gewünschten Tabellen hinzufüge bekomme ich immer die Fehlermeldung ... unbekannte Tabelle ....
Hier der Select:
select k.nummer Kostenstelle, t.bezeichnung ART, count(*) Anzahl from inventar i inner join geraet g on g.id=i.geraet_id and g.endoflife_id is null inner join geraet_typ t on t.id=g.typ_id and t.endoflife_id is null inner join kostenstelle k on k.id=i.kostenstelle_id and k.endoflife_id is null where i.inv_status_id=100 and g.typ_id in (24,27,52,57) group by t.bezeichnung,k.nummer order by art,kostenstelle
Danke für Eure Hilfe.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
SQL Abfragestring bearbeiten und speichern
17.12.2009 17:07:23
NoNet
Hallo Klaus,
klaro kannst Du den SQL-String in einem Tabellenblatt speichern (auch in eine einzige Zelle, wenn der SQL-String nicht zu lang ist) - hier die VBA-Anweisung :
Sheets("Tabelle2").[A1]=sheets("Tabelle1").Querytables(1).sql
Allerdings ist das nicht nötig, denn der SQL-String ist ohnehin im Tabellenblatt (unsichtbar) gespeichert und kann folgendermassen (ohne VBA !) bearbeitet werden :
Schritt 1 : Abfrage per Rechtsklick bearbeiten und Abbrechen (bitte ein-/ausblenden) : Einblenden  Ausblenden :

Schritt 2 : SQL in MS Query bearbeiten (bitte ein-/ausblenden) : Einblenden  Ausblenden :

Gruß, NoNet
Anzeige
AW: SQL Abfragestring bearbeiten und speichern
18.12.2009 18:02:53
Klaus
Hallo NoNet,
Danke für Deine Antwort, hat weitergeholfen, zumindest ein Stück.
Ad Screen1 : Bei mir öffnet sich nicht der Querry Assistent wie in deimen
Screen beschrieben sondern glecih MS Query. Aber egal !
Auch Select Statement konnte ich nun absetzen und das Ergebnis in Exel rückführen.
Leider ist das Ergebnis nicht zu meiner vollen Zufriedenheit da MS Query scheinbar keine SQL Aliase akzeptiert.
Z.B.: count(*) as Anz oder count(*) Anz funktioniert nicht und desswegen hat diese Spalte keine Überschrift. Es gibt komischerweise keine Fehlermeldung, es wird einfach beim speichern ignoriert ?
Es gibt auch keine Möglichkeit in MS Query im Nachhinein dazuzubenennen.
Leider brauche ich aber eine Tabellenüberschrift da ich das Ergebnis in einer
Pivottabelle weiterverarbeiten muß.
Gibt es hierfür einen Workaround?
Danke für jeden Tip !
Klaus
ps:
Ad: VBS, das lassen wir mal aussen vor ;-) ist mir momentan noch zu hoch.
Anzeige
AW: SQL Abfragestring bearbeiten und speichern
22.12.2009 20:57:41
Klaus
Gibt es eine Möglichkeit das MS Query SQL Aliases akzeptiert.
Z.B.: count(*) as Anz oder count(*) Anz funktioniert leider nicht!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

SQL Abfrage in Excel speichern und bearbeiten


Schritt-für-Schritt-Anleitung

  1. Verbindung zum SQL Server herstellen:

    • Gehe zu Daten > Externe Daten abrufen > Von SQL Server.
    • Gib die Serverinformationen ein und klicke auf OK.
  2. SQL Abfrage in Excel erstellen:

    • Wähle die gewünschten Tabellen aus und füge sie zur Abfrage hinzu.
    • Stelle sicher, dass Du eine gültige SQL-Abfrage eingibst. Zum Beispiel:
      SELECT k.nummer, t.bezeichnung AS ART, COUNT(*) AS Anzahl 
      FROM inventar i 
      INNER JOIN geraet g ON g.id = i.geraet_id 
      INNER JOIN geraet_typ t ON t.id = g.typ_id 
      INNER JOIN kostenstelle k ON k.id = i.kostenstelle_id 
      WHERE i.inv_status_id = 100 
      GROUP BY t.bezeichnung, k.nummer 
      ORDER BY ART, k.nummer
  3. Ergebnisse in einem Tabellenblatt speichern:

    • Nach dem Absetzen der Abfrage werden die Ergebnisse in Excel angezeigt.
    • Um die SQL Abfrage in Excel auszugeben, gehe zu Daten > Abfragen und Verbindungen und speichere die Abfrage.
  4. SQL Abfragestring speichern:

    • Du kannst den SQL-String in einer Zelle speichern, indem Du folgende VBA-Anweisung nutzt:
      Sheets("Tabelle2").[A1] = Sheets("Tabelle1").QueryTables(1).SQL
  5. Abfrage bearbeiten:

    • Rechtsklick auf die Abfrage und wähle Abfrage bearbeiten. Hier kannst Du die SQL Abfrage bearbeiten, ohne VBA verwenden zu müssen.

Häufige Fehler und Lösungen

  • Fehlermeldung: "Unbekannte Tabelle":

    • Überprüfe, ob alle Tabellen korrekt hinzugefügt wurden und ob Du die richtigen Berechtigungen hast.
  • SQL Aliase werden nicht akzeptiert:

    • MS Query unterstützt manchmal keine Aliase. Verwende stattdessen die vollständigen Spaltennamen.
  • Keine Überschrift in der Pivottabelle:

    • Wenn die SQL Abfrage in Excel keine Überschrift für die Zählung hat, kannst Du diese nachträglich manuell hinzufügen oder ein Makro verwenden.

Alternative Methoden

  • Excel VBA SQL Query Worksheet:

    • Du kannst Excel VBA nutzen, um SQL Abfragen programmgesteuert auszuführen und die Ergebnisse in einem Arbeitsblatt zu speichern.
  • SQL Datei in Excel importieren:

    • Verwende die Funktion Daten > Externe Daten abrufen > Aus Text und wähle eine SQL-Datei aus, um die Daten in Excel zu importieren.

Praktische Beispiele

  1. Einfaches Zählen von Datensätzen:

    SELECT COUNT(*) AS Gesamtanzahl FROM inventar

    Dies zählt die Gesamtanzahl der Datensätze in der Tabelle "inventar".

  2. Gruppierte Abfrage:

    SELECT k.nummer, COUNT(*) AS Anzahl 
    FROM inventar i 
    INNER JOIN kostenstelle k ON k.id = i.kostenstelle_id 
    GROUP BY k.nummer

    Dies gruppiert die Datensätze nach Kostenstelle und zählt sie.


Tipps für Profis

  • Nutze Pivot-Tabellen, um die Ergebnisse Deiner SQL Abfragen weiter zu analysieren.
  • Halte Deine SQL Abfragen einfach und klar, um die Leistung zu verbessern.
  • Experimentiere mit der Funktion Datenmodell, um komplexe Abfragen zu erstellen und zu visualisieren.

FAQ: Häufige Fragen

1. Wie kann ich eine SQL Abfrage in Excel bearbeiten?
Du kannst eine SQL Abfrage in Excel bearbeiten, indem Du mit der rechten Maustaste auf die Abfrage klickst und Abfrage bearbeiten wählst.

2. Akzeptiert MS Query SQL Aliase?
Leider akzeptiert MS Query nicht immer SQL Aliase. Du solltest die vollen Spaltennamen verwenden, um sicherzustellen, dass sie korrekt in Excel angezeigt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige