Direkt zum Hauptinhalt

Abfrage entwerfen

Ziel​

Eine Abfrage aufbauen, ohne JSON zu schreiben: die Tabelle wählen, die mit ihr verknüpften Tabellen einbinden, die zurückgegebenen Spalten auswählen, mit Bedingungen eingrenzen und – wenn die Antwort eine Zahl statt einer Liste ist – gruppieren und messen.

Wo Sie ihn finden​

Öffnen Sie Ihre Lösung, wählen Sie Gespeicherte Abfragen und dann Neu – oder markieren Sie eine Abfrage und wählen Sie Bearbeiten. Der Designer füllt die ganze Seite, statt von der Seite hereinzugleiten, weil eine Abfrage eine eigene Struktur hat: Tabellen, die mit Tabellen verknüpft sind, ein Bedingungsbaum, eine geordnete Spaltenliste, Kennzahlen. In einem schmalen Bereich bricht eine einzelne Bedingung auf vier Zeilen um und sieht nicht mehr wie eine Bedingung aus.

Wählen Sie Schließen, um zur Liste zurückzukehren. Gespeichert wird erst, wenn Sie Speichern wählen.

Die drei Registerkarten​

Sie sind drei Sichten auf eine Abfrage, nicht drei Editoren. Was Sie in einer ändern, zeigen die anderen – sie können also nie voneinander abweichen.

RegisterkarteWofür sie dient
EinfachDie alltägliche Abfrage: eine Tabelle, ihre Spalten, ein Filter, eine Sortierung, eine Zeilenbegrenzung.
ErweitertAlles, dazu verknüpfte Tabellen, Gruppierung mit Kennzahlen und die Optionen.
JSONDas Dokument selbst, für alles, was das Formular nicht darstellt.
ErgebnisseWas die Abfrage zurückgibt, als Tabelle. Diese ist eine Sicht auf die Antwort, nicht auf die Abfrage.

Eine Abfrage, die bereits verknüpfte Tabellen, Gruppierung oder Optionen verwendet, öffnet sich auf „Erweitert“, damit nichts, was sie enthält, vor Ihnen verborgen ist. Wechseln Sie mit einer solchen Abfrage zu „Einfach“, sagt das Formular, was es nicht anzeigt – und lässt es unverändert.

Schritte​

1. Die Tabelle wählen​

Wählen Sie die Schaltfläche Tabelle, und suchen Sie. Alles Weitere in der Abfrage baut auf dieser Tabelle und den mit ihr verknüpften Tabellen auf.

Ein Wechsel der Tabelle löscht den Rest, und das ist Absicht: Spalten, Bedingungen und Kennzahlen benennen alle Felder der alten Tabelle; sie zu behalten, würde eine Abfrage ergeben, die sich speichern lässt und dann die Ausführung verweigert – unter Nennung eines Felds, das Sie deutlich auf dem Bildschirm sehen.

2. Verknüpfte Tabellen hinzufügen (Erweitert)​

Wählen Sie Verknüpfte Tabelle hinzufügen. Die Liste wird aus den Beziehungen gebildet, die Ihre Umgebung bereits hat, sodass Sie nie einen Feldnamen eintippen. Ist noch nichts mit Ihrer Tabelle verknüpft, öffnet sich die Liste und sagt das – eine verknüpfte Tabelle entsteht durch eine Nachschlagespalte; fügen Sie also in einer der beiden Tabellen eine hinzu, dann erscheint sie hier.

  • Ein verknüpfter Datensatz – einem Nachschlagefeld folgend, etwa dem Account eines Deals. Das ist die übliche Verknüpfung, und sie ist sicher.
  • Viele verknüpfte Datensätze – Zeilen können sich wiederholen – in die andere Richtung, etwa die Deals eines Accounts. Das gibt die übergeordnete Zeile einmal pro untergeordnetem Datensatz zurück – und genau das verdoppelt stillschweigend eine Summe. Verwenden Sie es, wenn Sie es so meinen, und lesen Sie Zahlen, die zu groß wirken weiter unten.

Jede eingebundene Tabelle erhält:

  • Einen Namen (ihren Alias). Ihre Spalten heißen überall in der Abfrage alias.column. Sie können ihn umbenennen; der Abfrage-Designer warnt Sie, wenn noch etwas den alten Namen nennt.
  • Eine Verknüpfungseinstellung – Zeilen ohne Treffer behalten (Standard) oder Nur passende Zeilen. Der Standard ist die sichere Wahl: Mit Nur passende Zeilen verschwindet ein Deal ohne Account vollständig aus den Ergebnissen, und nichts auf dem Bildschirm bringt das Verschwinden mit der Verknüpfung in Verbindung.
  • Eigene Bedingungen, geöffnet über den Pfeil am Anfang der Zeile. Diese grenzen die verknüpfte Tabelle innerhalb der Verknüpfung ein, sodass Zeilen ohne Treffer weiterhin behalten werden, wenn die Verknüpfung sie behalten soll. Dieselbe Bedingung stattdessen in den Hauptfilter zu setzen, würde diese Zeilen verwerfen.

Eine Abfrage kann bis zu acht Tabellen einbinden, bis zu drei Ebenen tief verschachtelt.

3. Die Spalten wählen​

Der linke Bereich listet jede Spalte, die die Abfrage nennen kann – die eigenen der Tabelle und die jeder eingebundenen Tabelle, nach Tabelle gruppiert und während der Eingabe gefiltert. Aktivieren Sie eine, und sie erscheint rechts; das ist, was die Abfrage in dieser Reihenfolge zurückgibt. Das × entfernt eine.

Die Reihenfolge ist wichtig – in ihr kommen die Spalten zurück, und in ihr druckt ein Bericht sie. Ziehen Sie eine Zeile an ihrem Griff, um sie zu verschieben – dieselbe Geste wie bei den Werten eines Optionssatzes oder der Navigation einer App. Ohne Maus: Setzen Sie den Fokus auf den Griff, drücken Sie Leertaste, um die Zeile aufzunehmen, die Pfeiltasten, um sie zu verschieben, und erneut Leertaste, um sie abzulegen.

Lassen Sie den rechten Bereich leer, um die eigenen Spalten der Tabelle zurückzugeben.

Sie müssen nicht wissen, zu welcher Tabelle eine Spalte gehört. Aktivieren Sie „Account · Industry“, und die Abfrage trägt sie für Sie unter der Account-Verknüpfung ein.

4. Eingrenzen​

Der Abschnitt Filter ist derselbe UND/ODER-Bedingungsgenerator wie bei der erweiterten Suche oder dem Filter einer Ansicht, und er bietet jetzt jede Spalte der Abfrage an – die der eingebundenen Tabellen ebenso wie die eigenen der Tabelle.

Jede Bedingung ist eine Zeile: Feld, Operator, Wert und ein × zum Entfernen.

Ist eine von nimmt mehrere Werte auf einmal an. Bei einer Auswahlspalte öffnet sich eine durchsuchbare Liste zum Ankreuzen; bei einer Text- oder Zahlenspalte geben Sie einen Wert ein und drücken die Eingabetaste, um ihn hinzuzufügen, und jeder Wert wird zu einem Chip, den Sie entfernen können. Das ist eine Bedingung mit mehreren Werten, nicht mehrere Bedingungen, die Sie von Hand mit ODER verknüpfen müssen.

Ist mindestens und Ist höchstens gibt es, weil „mindestens 5“ als „größer als 4“ zu schreiben nur bei ganzen Zahlen stimmt und bei einer Dezimalzahl oder einem Datum stillschweigend falsch ist.

5. Gruppieren und messen (Erweitert)​

Aktivieren Sie Gruppen statt Datensätzen zurückgeben, wenn die Antwort eine Zahl statt einer Liste ist – daraus werden Diagramme und KPI-Kacheln gezeichnet.

  • Kennzahlen – was berechnet werden soll. Anzahl braucht kein Feld (dann zählt sie Datensätze), akzeptiert aber eines (dann zählt sie die Zeilen, in denen dieses Feld gesetzt ist). Summe und Durchschnitt bieten nur numerische Spalten an. Jede Kennzahl hat einen kurzen Namen; unter diesem Namen kommt das Ergebnis zurück, und daran bindet sich ein Diagramm.
  • Gruppieren nach – bis zu zwei Schlüssel. Leer lassen für eine Gesamtsumme über die ganze Tabelle. Eine Datumsspalte bietet zusätzlich einen Zeitraum an – nach Tag, Woche, Monat, Quartal oder Jahr.
  • Bedingungen auf die Kennzahlen – siehe unten.

6. Bedingungen auf die Kennzahlen (Erweitert)​

Das ist die Frage, die ein Filter nicht stellen kann.

Ein Filter entscheidet, welche Datensätze in eine Gruppe eingehen. Eine Bedingung auf eine Kennzahl entscheidet, welche Gruppen herauskommen. „Kunden, die mehr als zehnmal bestellt haben“ lässt sich überhaupt nicht als Filter schreiben, weil keine einzelne Bestellung weiß, wie viele ihr Kunde aufgegeben hat.

Also: nach Kunde gruppieren, Count als orders messen und dann eine Bedingung hinzufügen – orders ist mindestens 10.

Bedingungen können nur Kennzahlen nennen, die diese Abfrage berechnet. Wenn Sie hier eine einfache Spalte vergleichen möchten, gehört das in den Filter.

7. Sortieren und begrenzen​

Sortieren Sie nach einer beliebigen Spalte, die die Abfrage zurückgibt. Eine gruppierte Abfrage hat keine Spalten, nach denen sortiert werden könnte – ihre Zeilen sind Gruppen –, daher bietet sie stattdessen die Gruppierungsschlüssel und die Kennzahlnamen an, die einzigen Namen, die sie hat.

Höchstens zurückgeben begrenzt die Zeilen bzw. Gruppen. Absteigend nach einer Kennzahl zu sortieren und auf fünf zu begrenzen, ergibt die Abfrage „die fünf besten Kunden“.

8. Optionen (Erweitert)​

  • Doppelte Zeilen entfernen – ist nur bei einer Verknüpfung mit vielen Datensätzen pro Zeile relevant. Es korrigiert keine Summe: Eine gruppierte Abfrage zählt die wiederholten Zeilen trotzdem, weil das Entfernen doppelter Zeilen und das Zählen unterschiedliche Fragen sind.
  • Text von Nachschlagespalten einschließen – standardmäßig aktiviert, weil eine Spalte aus Datensatz-IDs keine Sicht auf irgendetwas ist. Schalten Sie es für einen nach ID geschlüsselten Export ab.
  • Zeitzone – wird für Datumszeiträume verwendet. Ohne sie werden diese in UTC berechnet; ein Datensatz von neun Uhr abends landet dann auf dem nächsten Tag, und ein Tagesdiagramm ist jeden Tag um eine Kleinigkeit falsch, ohne dass es jemand bemerkt.

9. Speichern, dann Vorschau​

Speichern prüft die Abfrage auf dreierlei Weise: dass sie ein wohlgeformtes Dokument ist, dass sie eine gültige Abfrage ist und dass sie hier tatsächlich ausführbar wäre – jedes Feld, jede Verknüpfung, jede Gruppierung und jede Kennzahl gegen die echten Tabellen Ihrer Umgebung aufgelöst.

Vorschau führt die Abfrage aus und öffnet die Registerkarte Ergebnisse, die das Ergebnis als Tabelle zeigt: eine Spalte pro zurückgegebener Spalte der Abfrage, unter ihrem Anzeigenamen, in der Reihenfolge, die Sie festgelegt haben. Nachschlagespalten zeigen den Namen des Datensatzes, nicht die dahinter gespeicherte ID.

  • Eine Datensatzabfrage wird seitenweise angezeigt, 25 Zeilen auf einmal, mit der Seitennavigation unter der Tabelle und der Gesamtzahl darüber. Eine gruppierte Abfrage wird nicht seitenweise angezeigt – sie gibt jede gefundene Gruppe zurück –, ihre Tabelle ist also die ganze Antwort.
  • Sie führt die Abfrage wie gespeichert aus, mit Ihren eigenen Berechtigungen. Speichern Sie zuerst: Nicht gespeicherte Änderungen sind nicht enthalten, und die Registerkarte weist über der Tabelle darauf hin. Eine nie gespeicherte Abfrage hat nichts Gespeichertes zum Ausführen, und Vorschau ist erst verfügbar, wenn Sie sie einmal gespeichert haben.

Die Registerkarte „JSON“​

Der Designer stellt fast die gesamte Abfragesprache dar, und die Registerkarte „JSON“ ist der Rest – Seitenaufteilung und alles, was eine von Hand geschriebene oder von einer KI erzeugte Abfrage verwendet, für das das Formular kein Steuerelement hat. Es ist das Schema parsware-query@1 – dasselbe Dokument, das Sie einem Assistenten geben würden, den Sie bitten, eine Abfrage für Sie zu schreiben.

Alles, was das Formular nicht darstellt, bleibt genau so erhalten, während Sie alles andere bearbeiten. Ein Designer, der stillschweigend einen Teil Ihrer Abfrage verwirft, wäre die denkbar schlechteste Art herauszufinden, dass sie einen solchen Teil hatte.

Zahlen, die zu groß wirken​

Eine Verknüpfung in Richtung „viele verknüpfte Datensätze“ wiederholt die übergeordnete Zeile einmal pro Treffer, und Summen zählen die Wiederholungen mit: Ein Account mit fünf Deals wird fünfmal gezählt.

Einem Nachschlagefeld zu folgen – die übliche Richtung – kann das nicht verursachen. Wirkt eine Summe aufgebläht, prüfen Sie, ob eine Verknüpfung viele verknüpfte Datensätze lautet, und messen Sie entweder stattdessen die untergeordnete Tabelle, oder stellen Sie die Frage andersherum.

Fehlerbehebung​

  • „This is not valid JSON, so the designer cannot show it.“ – In der Registerkarte „JSON“ fehlt ein Komma oder eine Klammer. Beheben Sie es dort; das Formular kann kein Dokument anzeigen, das es nicht lesen kann, und ein leeres anzuzeigen würde Ihre Eingabe überschreiben, sobald Sie ein Steuerelement berühren.
  • „These are named by the query but no longer exist in it.“ – Sie haben eine verknüpfte Tabelle entfernt oder umbenannt, und etwas nennt sie noch. Entfernen Sie diese Verweise, oder fügen Sie die Tabelle unter demselben Namen wieder hinzu.
  • „Unknown field …“ beim Speichern – Das Feld gehört zu einer eingebundenen Tabelle und braucht den Namen der Verknüpfung davor, oder die Verknüpfung wurde entfernt.
  • Eine Bedingung auf eine Kennzahl wird abgelehnt – Sie nennt etwas, das keine Kennzahl dieser Abfrage ist. Benennen Sie sie passend um, oder verschieben Sie die Bedingung in den Filter, wenn sie eine Spalte betrifft.
  • Beim Hinzufügen einer verknüpften Tabelle gibt es nichts zur Auswahl – Mit dieser Tabelle ist noch nichts verknüpft, was die Liste beim Öffnen auch sagt. Eine verknüpfte Tabelle entsteht durch eine Nachschlagespalte: siehe Beziehung zwischen Entitäten erstellen.
  • „This environment's relationships could not be loaded“ – Der Designer konnte die Beziehungen der Umgebung nicht lesen und hat daher keine Verknüpfungen anzubieten. Das ist kein Fehler der Abfrage; schließen Sie den Designer, und öffnen Sie ihn erneut.

Verwandte Szenarien​