|
Abfragen |
|
Benutzerdefinierte Abfragen greifen direkt auf die Struktur der BaSYS Datenbank zu. Die Abfragen werden im sogenannten Query-Designer erstellt. Je nach Bedarf können Auswahl-, Aktualisierungs-, Anfüge- und / oder Löschabfragen erstellt werden. Jede benutzerdefinierte Abfrage kann im Barthauer Configuration Explorer oder extern als Dokument gespeichert werden. Die Abfrage-Ergebnisse können in beliebige Office-Dokumente exportiert werden. Fertiggestellte Abfragen können im Berichtsmanager verwendet werden.
In der Hilfe werden folgende Abschnitte beschrieben:
In diesem Abschnitt geht es um folgende Themen:
Einige Abfragebeispiele ergänzen die Einführung in die beiden Datenbank-Abfrage-Sprachen.
In Abfragen werden keine Gänsefüßchen (") sondern ausschließlich Apostrophs (') genutzt.
In diesem Abschnitt geht es um folgende Themen:
SELECT-Anweisung
WHERE-Klausel
JOIN-Bedingung
GROUP BY-Anweisung
SQL ist die Datenbanksprache für eine Reihe von relationalen Datenbankmanagementsystemen (DBMS), wie SQL-Server und Oracle.
Um Daten aus der Datenbank abzufragen, werden SQL SELECT-Anweisungen genutzt. Eine SELECT-Anweisung ruft Informationen aus der Datenbank ab. Mit Hilfe der SELECT-Anweisung werden folgende Aufgaben erledigt:
● |
Auswahl (Selection) |
Sie können die Auswahlfunktionalität in SQL verwenden, um die Zeilen einer Tabelle auszuwählen, die Ihre Abfrage zurückgeben soll. Sie können verschiedene Kriterien verwenden, um die angezeigten Zeilen selektiv zu beschränken. |
● |
Projektion (Projection) |
Sie können die Projektionsfunktionalität in SQL verwenden, um die Spalten in einer Tabelle auszuwählen, die Ihre Abfrage zurückgeben soll. Sie können beliebig wenige oder viele Spalten aus der Tabelle auswählen. |
● |
Join |
Sie können die Join-Funktionalität in SQL verwenden, um Daten zusammenzustellen, die in verschiedenen Tabellen gespeichert sind, indem Sie die beiden Tabellen verknüpfen. |
Über die SELECT-Anweisung werden gewünschte Inhalte der Datenbank als Tabelle ausgegeben.
In ihrer einfachsten Form muss eine SELECT-Anweisung folgende Elemente enthalten:
Eine SELECT-Klausel, welche die anzuzeigenden Spalten festlegt
Eine FROM-Klausel, welche die Tabelle festlegt, welche die in der SELECT-Klausel aufgelisteten Spalten enthält.
Als Beispiel dient hier eine einfache Abfrage auf die Tabelle AbwKnoten:
|
SELECT |
{AbwKnoten}.{Bezeichnung}, {AbwKnoten}.{Kanalart}, {AbwKnoten}.{Tiefe}, {AbwKnoten}.{Sohlhöhe} |
|
FROM |
{AbwKnoten} AbwKnoten |
Die Beispielabfrage führt zu folgendem Ergebnis:
Bezeichnung |
Kanalart |
Tiefe |
Sohlhöhe |
53/01AP15 |
KM |
|
|
32/11 |
KM |
2,19 |
105,85 |
3019001 |
KS |
1,48 |
90,97 |
Um alle in der Tabelle befindlichen Spalten in der Abfrage wiederzugeben, müssen die Spalten nicht explizit bezeichnet werden. Das Zeichen "*" wählt automatisch alle Spalten der Tabelle. Beispiel für die Syntax:
|
SELECT * FROM |
{AbwKnoten} AbwKnoten |
Bei der normalen Abfrage tragen die Spalten der Abfrage die ursprünglichen Tabellenspaltennamen. Diese Konvention ist nicht immer gewünscht beziehungsweise für die Datenwiedergabe nicht immer eindeutig. In diesem Fall besteht die Möglichkeit, Aliasnamen zu vergeben.
Beispielsweise kann der Spalte Tiefe der Aliasname Schachttiefe und der Spalte Bezeichnung der Aliasname Schachtbezeichnung gegeben werden. Die Aliasnamen wirken sich nur auf die Datenausgabe und nicht auf die Ursprungstabellen aus.
Beispiel für die Syntax:
|
SELECT |
{AbwKnoten}.{Bezeichnung} AS Schachtbezeichnung, {AbwKnoten}.{Tiefe} AS Schachttiefe |
|
FROM |
{AbwKnoten} AbwKnoten |
Die Beispielabfrage führt zu folgendem Ergebnis:
Schachtbezeichnung |
Schachttiefe |
32/11 |
2,19 |
3019001 |
1,48 |
84/05 |
2,21 |
Die von der Abfrage zurückgegebenen Zeilen können mit Hilfe der WHERE-Klausel eingeschränkt werden. Die WHERE-Klausel enthält eine Bedingung, die erfüllt werden muss. Die Bedingung folgt unmittelbar auf die FROM-Klausel.
In der Syntax:
WHERE beschränkt die Abfrage auf Zeilen, die eine Bedingung erfüllen
Bedingung besteht aus einem Spaltennamen, Ausdrücken, Konstanten und einem Vergleichsoperator
Als Beispiel eine Abfrage mit WHERE-Klausel auf die Tabelle AbwLeitung:
|
SELECT |
{AbwLeitung}.{Bezeichnung}, {AbwLeitung}.{Kanalart} |
|
FROM |
{AbwLeitung} AbwLeitung |
|
WHERE |
(({AbwLeitung}.{Typ} = 0 AND {AbwLeitung}.{Kanalart} = 'KR')) |
Die Einschränkung dieser Abfrage bezieht sich auf den Leitungstyp = 0. Die Leitungstypen unterscheiden sich wie folgt:
Typ 0 = Hauptleitung
Typ 1 = Anschlussleitung
Des weiteren wird noch auf die Kanalart gefiltert. In diesem Fall werden nur Regenwasserkanäle abgefragt. Die Beispielabfrage führt zu folgendem Ergebnis:
Bezeichnung |
Kanalart |
119032 |
KR |
119023 |
KR |
119043 |
KR |
120007 |
KR |
In obigem Beispiel sind mehrere Einschränkungskriterien über den Operator AND verknüpft. Dadurch kann die Abfrage noch weiter eingeschränkt werden.
In bestimmten Fällen sollen Daten aus mehreren Tabellen verwendet werden. Falls diese Daten direkt aus Datenbanktabellen abgefragt werden, wird die JOIN-Bedingung verwendet.
Die Zeilen der abzufragenden Datenbanktabellen können über Werte verknüpft werden, die in bestimmten Spalten der Tabellen gemeinsam genutzt werden. Dabei handelt es sich meistens um die Werte der Primärschlüssel- und Fremdschlüsselspalten.
Um Daten aus mehreren Tabellen anzuzeigen, die zueinander in Beziehung stehen, kann eine einfache JOIN-Bedingung vor die WHERE-Klausel geschrieben werden.
Als Beispiel eine Abfrage auf die Tabellen AbwLeitung und AbwKnoten:
|
SELECT |
{AbwLeitung}.{Bezeichnung}, {AbwKnoten}.{Bezeichnung} as Zulauf, {AbwKnoten_1}.{Bezeichnung} as Ablauf, {AbwLeitung}.{Kanalart} |
|
FROM |
(( {AbwLeitung} AbwLeitung |
|
INNER JOIN |
{AbwKnoten} AbwKnoten ON {AbwLeitung}.{IdRefAnf -AbwKnoten-} = {AbwKnoten}.{Id}) |
|
INNER JOIN |
{AbwKnoten} AbwKnoten_1 ON {AbwLeitung}.{IdRefEnd -AbwKnoten-} = {AbwKnoten_1}.{Id}) |
|
WHERE |
(({AbwLeitung}.{Kanalart} = 'KR' AND {AbwLeitung}.{Typ} = 0)) |
Die Beispielabfrage führt zu folgendem Ergebnis:
Bezeichnung |
Zulauf |
Ablauf |
Kanalart |
211070 |
211070 |
211071 |
KS |
211071 |
211071 |
211112 |
KS |
211073 |
211073 |
211095 |
KS |
211075 |
211075 |
211075SF01 |
KS |
211075B01 |
211075B01 |
211075K01 |
KS |
Abfrageergebnisse können nach Wert gruppiert werden. Eine Gruppierung unterliegt bestimmten Gesetzmäßigkeiten:
Die abgefragten Tabellenspalten müssen mit in die Gruppierung aufgenommen werden.
Funktionen wie SUM oder COUNT werden nicht in eine Gruppierung aufgenommen.
Als Beispiel eine Abfrage auf die Tabelle AbwLeitung:
|
SELECT |
{AbwLeitung}.{Material} AS Material, {AbwLeitung}.{Kanalart} AS Kanalart, SUM ({AbwLeitung}.{Länge} ) AS Gesamtlänge, COUNT ( * ) AS Anzahl |
|
FROM |
{AbwLeitung} AbwLeitung |
|
GROUP BY |
{AbwLeitung}.{Kanalart}, {AbwLeitung}.{Material} |
Die Beispielabfrage führt zu folgendem Ergebnis:
Material |
Kanalart |
Gesamtlänge |
Anzahl |
AZ |
|
6,9 |
3 |
AZ |
KR |
53,72 |
2 |
AZ |
KS |
859,05 |
33 |
B |
|
91,71 |
9 |
B |
KR |
2.077,87 |
58 |
In diesem Abschnitt geht es um folgende Themen:
Bei der Data Manipulation Language (DML) handelt es sich um ein Kernelement von SQL. DML-Anweisungen werden ausgeführt, um Daten in der Datenbank hinzuzufügen, zu aktualisieren oder zu löschen. Eine Sammlung von DML-Anweisungen, die eine logische Arbeitseinheit bilden, wird als Transaktion bezeichnet.
Die SELECT-Unterabfrage in der INSERT-Anweisung fügt in eine Tabelle Werte ein, die aus einer oder mehreren anderen Tabellen oder Sichten stammen. Das Verwenden der SELECT-Unterabfrage ermöglicht außerdem das gleichzeitige Einfügen mehrerer Zeilen.
In ihrer einfachsten Form muss eine INSERT-Anweisung folgende Elemente enthalten:
Die INSERT INTO-Anweisung legt die zu bearbeitende Tabelle und ihre Spalten fest. Die Namen der mit Daten zu füllenden Spalten werden durch eine mit Kommas getrennte Liste in Klammern aufgeführt.
Die SELECT-Klausel enthält eine durch Kommas getrennte Liste der Werte, die in die Spalten eingefügt werden soll. Die Werte müssen dieselbe Reihenfolge besitzen wie die Auflistung in der INSERT INTO-Anweisung.
Die FROM-Klausel bezieht aus mindestens einer Tabelle oder Sicht die Daten für die zu ergänzende Tabelle. Optional definiert die Klausel Verknüpfungsbedingungen zwischen den Quelltabellen oder -sichten.
Die WHERE-Klausel gibt eine Suchbedingung an, mit der die Zeilen der Quelltabellen und -sichten definiert werden.
In vereinfachter Form kann die INSERT-Syntax so aussehen:
|
INSERT INTO |
table_or_view ({column}, {column}, ...) |
|
SELECT |
value, value.... |
|
FROM |
table_sources |
Die folgende INSERT-Anweisung fügt für eine Haltung einen Wartungseintrag in die Tabelle AbwMaintenance ein:
|
INSERT INTO |
{AbwMaintenance} ({Datum}, {NächstesDatum}, {Id}, {RefObjektId}, {RefObjekttyp}) |
|
SELECT |
'12.09.2004', '29.12.2004', NewId ( ), {AbwLeitung}.{Id}, {AbwLeitung}.{Objekttyp} |
|
FROM |
( {AbwLeitung} AbwLeitung |
|
LEFT JOIN |
{AbwMaintenance} AbwMaintenance ON {AbwLeitung}.{Id} = {AbwMaintenance}.{RefObjektId}) |
|
WHERE |
({AbwLeitung}.{Bezeichnung} like '[Bezeichnung]') |
Nachdem die Tabellen erstellt und Daten hinzugefügt wurden, wird das Ändern oder Aktualisieren der Daten in den Tabellen zu einem täglichen Routineprozess bei der Datenbankverwaltung. Eine UPDATE-Anweisung kann zum Aktualisieren von Daten in bestimmten Zeilen einer Tabelle oder Sicht verwendet werden.
In ihrer einfachsten Form muss eine Update-Anweisung folgende Elemente enthalten:
Die Update-Anweisung legt die zu bearbeitende Tabelle fest.
Die SET-Klausel enthält eine durch Kommata getrennte Liste der zu aktualisierenden Spalten sowie den neuen Wert jeder Spalte im Format column_name = expression. Der über die Ausdrücke definierte Wert kann Elemente (beispielsweise Konstanten) sowie aus der Spalte einer anderen Tabelle / Sicht gewählte oder über einen komplexen Ausdruck berechnete Werte umfassen.
Die FROM-Klausel bezieht aus mindestens einer Tabelle oder Sicht die Daten für die zu ergänzende Tabelle. Optional definiert die Klausel Verknüpfungsbedingungen zwischen den Quelltabellen oder -sichten.
Die WHERE-Klausel gibt eine Suchbedingung an, mit der die Zeilen der Quelltabellen und -sichten definiert werden, um die Werte für die Ausdrücke in der SET-Klausel bereitzustellen.
Die folgende UPDATE-Anweisung fügt für jeden Knoten einen Kommentar 'Testeintrag' ein:
|
UPDATE |
{AbwKnoten} |
|
SET |
{Kommentar} = 'Testeintrag' |
|
FROM |
{AbwKnoten} AbwKnoten |
|
WHERE |
({AbwKnoten}.{Status} = [Status]) |
Die SET-Klausel gibt die zu ändernden Spalten und deren neue Werte vor. Die Spaltenwerte werden in den Zeilen mit den per SET ermittelten Werten aktualisiert, die mit der Suchbedingung der WHERE-Klausel übereinstimmen.
Falls keine WHERE-Klausel angegeben ist, werden alle Zeilen aktualisiert. Der in der WHERE-Klausel angegebene Wert [Status] ist ein Parameter, der direkt auf die betreffende Auswahlliste zugreift. Dieses Thema wird im Abschnitt Parameter weiter ausgeführt.
Die in der SET-Klausel verwendeten Ausdrücke können auch Unterabfragen sein, die nur einen Wert zurückgeben:
|
UPDATE |
{AbwKnoten} |
|
SET |
{Kommentar} = ( |
|
SELECT |
{AbwKnoten}.{Kommentar} |
|
FROM |
{AbwKnoten} AbwKnoten |
|
WHERE |
({AbwKnoten}.{Bemerkung} = 'Test1')) |
|
FROM |
{AbwKnoten} AbwKnoten |
|
WHERE |
({AbwKnoten}.{Bezeichnung} = '119010') |
Diese Unterabfrage gibt den Wert der Spalte Kommentar zurück, und zwar von dem Datensatz, der in der Spalte Bemerkung den Wert Test1 besitzt.
Die DELETE-Anweisung entfernt eine Zeile oder mehrere Zeilen einer Tabelle oder Sicht.
In vereinfachter Form kann die DELETE-Syntax so aussehen:
|
DELETE |
table_or_view |
|
FROM |
table_sources |
|
WHERE |
search_condition |
Der Ausdruck table_or_view steht für den Namen einer Tabelle oder Sicht, aus der Zeilen gelöscht werden sollen:
Alle Zeilen in table_or_view, welche die Suchbedingungen der WHERE-Klausel erfüllen, werden gelöscht. Ist keine WHERE-Klausel angegeben, werden alle Zeilen in table_or_view gelöscht.
Die FROM-Klausel gibt zusätzliche Tabellen / Sichten und Verknüpfungsbedingungen an, die von den Prädikaten in der Suchbedingung der WHERE-Klausel zur Kennzeichnung der aus table_or_view zu löschenden Zeilen verwendet werden können.
Zeilen werden nicht aus den in der FROM-Klausel angegebenen Tabellen gelöscht, sondern lediglich aus der in table_or_view angegebenen Tabelle.
Tabellen, aus denen alle Zeilen entfernt wurden, verbleiben in der Datenbank. Die DELETE-Anweisung löscht ausschließlich Zeilen aus der Tabelle.
Aus der BaSYS-Datenbank dürfen auf keinen Fall Tabellen gelöscht werden, weil damit die Datenbankstruktur zerstört würde!
Folgende DELETE-Anweisung löscht eine Haltung mit einer bestimmten Bezeichnung aus der Datenbank. Die Bezeichnung der zu löschenden Leitung wird über einen Parameter an die DELETE-Anweisung übergeben:
|
DELETE |
{AbwLeitung} |
|
FROM |
{AbwLeitung} AbwLeitung |
|
WHERE |
({AbwLeitung}.{Bezeichnung} = '[Bezeichnung]') |
Die Bezeichnung kann auch direkt anstelle des Parameters eingegeben werden:
|
DELETE |
{AbwLeitung} |
|
FROM |
{AbwLeitung} AbwLeitung |
|
WHERE |
({AbwLeitung}.{Bezeichnung} = '0815/1') |
Die nachstehende DELETE-Anweisung löscht alle Inhalte aus der Tabelle AbwMaintenance:
|
DELETE |
{AbwMaintenance} |
|
FROM |
{AbwMaintenance} AbwMaintenance |
Für Abfragen auf Oracle gelten einige Besonderheiten, auf die in diesem Abschnitt kurz eingegangen wird.
Bei der Erstellung von DML-Abfragen, die auf BaSYS-Datenbestände in einem Oracle Datenbankmanagementsystem angewendet werden, dürfen in der Datenherkunft keine JOIN Klauseln eingesetzt werden. Oracle unterstützt diese Syntax nicht.
Anstelle der JOIN Klauseln sind SELECT Ausdrücke zu verwenden, um auf Inhalte anderer Tabellen zuzugreifen.
Damit der Query Manager die Abfrage verarbeiten kann, muss dennoch eine FROM-Klausel vorhanden sein, welche die Zieltabelle der Abfrage enthält.
Folgende SQL Server Syntax soll auf einem Oracle Server laufen:
|
UPDATE |
{AbwKnoten} SET {IdRef -AllgStrasse-} = {AbwLeitung}.{IdRef -AllgStrasse-} |
|
FROM |
( {AbwKnoten} AbwKnoten INNER JOIN {AbwLeitung} AbwLeitung ON {AbwKnoten}.{Id} = {AbwLeitung}.{IdRefAnf -AbwKnoten-}) |
|
WHERE |
(({AbwKnoten}.{IdRef -AllgGemeinde-} = '[aktGV]' AND {AbwKnoten}.{IdRef -AllgStrasse-} is null)) |
Damit dies möglich ist, wird die Syntax entsprechend angepasst:
|
UPDATE |
{AbwKnoten} SET {IdRef -AllgStrasse-} = (SELECT Max ({AbwLeitung}.{IdRef -AllgStrasse-} ) |
|
FROM |
{AbwLeitung} AbwLeitung |
|
WHERE |
(({AbwLeitung}.{Typ} = 0 AND {AbwLeitung}.{IdRefAnf -AbwKnoten-} = {AbwKnoten}.{Id}))) |
|
FROM |
{AbwKnoten} AbwKnoten |
|
WHERE |
(({AbwKnoten}.{IdRef -AllgGemeinde-} = '[aktGV]' AND {AbwKnoten}.{IdRef -AllgStrasse-} is null)) |
Die umgeformte Abfrage kann jetzt gleichzeitig für den Microsoft SQL Server und Oracle eingesetzt werden.
In diesem Abschnitt geht es um folgende Themen:
Die in diesem Abschnitt beschriebenen Beispiele können sofort genutzt werden. So geht's:
Die Syntax der Abfrage wird zunächst in den Arbeitsbereich SQL-Editor kopiert.
Beim ersten Ausführen der Abfrage erscheint eine Meldung, da die Verbindung zu den Tabellen noch nicht erstellt wurde.
Nach Bestätigung der Meldung werden alle Tabellen und Beziehungen eingebunden.
Die neu erstellte Abfrage kann nun gespeichert und anschließend erneut ausgeführt werden.
Im Standardumfang des Query-Managers befindet sich die Abfrage Einzugsflächen. Diese Abfrage würde in ihrer ursprünglichen Form keine Geometrien zurückgeben, da der Abfrage keine Geometriespalte zugeordnet ist.
So geht's:
Wahl der Spalte {AbwEinzugsflaeche}.{Geometries} im Arbeitsbereich Beziehungen/Tabellen.
Über die Schaltfläche Eigenschaften der Werkzeugleiste wird der Auswahlliste Geometrie-Spalte die Tabellenspalte {AbwEinzugsflaeche}.{Geometries} zugewiesen.
Die Abfrage wird danach gespeichert und ausgeführt.
Sobald im Arbeitsbereich Ergebnisse Daten erscheinen, wird die Geometrie-Schaltfläche aktiv. Die Geometrien können nun abgerufen werden.
Weitere Informationen befinden sich im Abschnitt Ergebnisse. Die Syntax der Abfrage lautet:
|
SELECT |
{AbwEinzugsflaeche}.{Bezeichnung}, {AbwEinzugsflaeche}.{Gesamtflaeche}, {AbwEinzugsflaeche}.{BefestigteFlaeche}, {AbwEinzugsflaeche}.{Befestigungsgrad}, {AbwEinzugsflaeche}.{abefId}, {AbwEinzugsflaeche}.{Geometries} |
|
FROM |
{AbwEinzugsflaeche} AbwEinzugsflaeche |
Im Folgenden sind Beispiele weiterer Abfragen mit Geometrien zu finden.
Abfrage auf die Geometrien der Haltungen:
|
SELECT |
{AbwLeitung}.{Bezeichnung}, {AbwLeitung}.{Id}, {AbwLeitung}.{Objekttyp}, {AbwLeitung}.{Geometries}, {AbwKnoten}.{Bezeichnung} AS Anfangsknoten, {AbwKnoten_1}.{Bezeichnung} AS Endknoten, {AbwLeitung}.{Kanalart} |
|
FROM |
(( {AbwLeitung} AbwLeitung |
|
INNER JOIN |
{AbwKnoten} AbwKnoten ON {AbwLeitung}.{IdRefAnf -AbwKnoten-} = {AbwKnoten}.{Id}) |
|
INNER JOIN |
{AbwKnoten} AbwKnoten_1 ON {AbwLeitung}.{IdRefEnd -AbwKnoten-} = {AbwKnoten_1}.{Id}) |
|
WHERE |
(({AbwLeitung}.{Kanalart} = 'KR' AND {AbwLeitung}.{Typ} = 0)) |
Für die Abfrage sind folgende Synchronizer-Optionen erforderlich:
Synchronizer
|
In der gezeigten Abfrage ist der Leitungstyp über die WHERE-Klausel auf 0 gesetzt:
Dadurch wird auf Haltungen gefiltert.
Für Anschlussleitungen ist der Typ auf 1 zu setzen.
Zur Abfrage aller Leitungstypen entfällt die WHERE-Klausel.
In dieser Abfrage wird nicht zwischen den Knotentypen unterschieden.
|
SELECT |
{AbwKnoten}.{Bezeichnung}, {AbwKnoten}.{Id}, {AbwKnoten}.{Objekttyp}, {AbwKnoten}.{Geometries} |
|
FROM |
{AbwKnoten} AbwKnoten |
Für diese Abfrage sind die selben Synchronizer-Eigenschaften wie o a. vorzunehmen, mit dem Unterschied, dass sich die Tabelle geändert hat.
|
SELECT |
{AbwLeitung}.{Bezeichnung}, {AbwKnoten}.{Bezeichnung} as Zulauf, {AbwKnoten_1}.{Bezeichnung} AS Ablauf |
|
FROM |
(( {AbwKnoten} AbwKnoten |
|
INNER JOIN |
{AbwLeitung} AbwLeitung ON {AbwLeitung}.{IdRefAnf -AbwKnoten-} = {AbwKnoten}.{Id}) |
|
INNER JOIN |
{AbwKnoten} AbwKnoten_1 ON {AbwLeitung}.{IdRefEnd -AbwKnoten-} = {AbwKnoten_1}.{Id}) |
|
WHERE |
({AbwLeitung}.{Id} in ([Bezeichnung] )) |
|
ORDER BY |
{AbwLeitung}.{Bezeichnung} ASC |
Im Folgenden werden Abfragen mit Inner und Left und Right Join vorgestellt.
|
SELECT |
{AbwLeitung}.{Bezeichnung}, {AbwKnoten}.{Bezeichnung} as Zulauf, {AbwKnoten_1}.{Bezeichnung} as Ablauf, {AbwLeitung}.{Kanalart} |
|
FROM |
(( {AbwLeitung} AbwLeitung |
|
INNER JOIN |
{AbwKnoten} AbwKnoten ON {AbwLeitung}.{IdRefAnf -AbwKnoten-} = {AbwKnoten}.{Id}) |
|
INNER JOIN |
{AbwKnoten} AbwKnoten_1 ON {AbwLeitung}.{IdRefEnd -AbwKnoten-} = {AbwKnoten_1}.{Id}) |
|
WHERE |
(({AbwLeitung}.{Kanalart} = '[Kanalart]' AND {AbwLeitung}.{Typ} = 0)) |
|
ORDER BY |
{AbwLeitung}.{Bezeichnung} ASC |
Es werden alle Leitungen angezeigt, auch wenn keine Straße der Leitung zugeordnet ist.
|
SELECT |
{AbwLeitung}.{Bezeichnung} AS Haltungsbezeichnung, {AllgStrasse}.{Name} AS Straßenname |
|
FROM |
( {AbwLeitung} AbwLeitung |
|
LEFT JOIN |
{AllgStrasse} AllgStrasse ON {AbwLeitung}.{IdRef -AllgStrasse-} = {AllgStrasse}.{Id}) |
|
WHERE |
({AbwLeitung}.{Typ} = 0) |
Es werden alle Straßennamen angezeigt, auch wenn keine Leitung der Straße zugeordnet ist.
|
SELECT |
{AbwLeitung}.{Bezeichnung} AS Haltungsbezeichnung, {AllgStrasse}.{Name} AS Straßenname |
|
FROM |
( {AbwLeitung} AbwLeitung |
|
RIGHT JOIN |
{AllgStrasse} AllgStrasse ON {AbwLeitung}.{IdRef -AllgStrasse-} = {AllgStrasse}.{Id}) |
In dieser Abfrage befindet sich eine Unterabfrage mit der Funktion "MAX". Sie dient dazu, für jede Haltung das jeweils neueste Untersuchungsdatum Abzufragen.
|
SELECT |
{AbwLeitung}.{Bezeichnung}, {AbwLeitung}.{Id}, {AbwLeiInspektion}.{Datum} |
|
FROM |
( {AbwLeitung} AbwLeitung |
|
INNER JOIN |
{AbwLeiInspektion} AbwLeiInspektion ON {AbwLeitung}.{Id} = {AbwLeiInspektion}.{IdRef -AbwLeitung-}) |
|
WHERE |
({AbwLeiInspektion}.{Datum} = ( |
|
SELECT |
MAX ({AbwLeiInspektion}.{Datum}) From {AbwLeiInspektion} AbwLeiInspektion |
|
WHERE |
{AbwLeiInspektion}.{IdRef -AbwLeitung-} = {AbwLeitung}.{Id})) |
|
ORDER BY |
({AbwLeitung}.{Bezeichnung}) |
In diesem Abschnitt der Hilfe ist der Aufbau der Benutzeroberfläche grob schematisch dargestellt. Von dort führen Verknüpfungen zu den relevanten Abschnitten der Hilfe weiter.
Dokument bearbeiten |
Kopfleiste. |
||||||||||||
|
|||||||||||||
|
|||||||||||||
|
Arbeitsbereiche. |
|
|
Zugehörige Symbole |
Über die Symbole der Werkzeugleiste können die Voreinstellungen gespeichert sowie alle nach dem letzten Speichern erfolgten Änderungen zurückgesetzt werden.
Über die Funktionstasten werden die Arbeitsbereiche der Benutzeroberfläche ein- und ausgeschaltet:
Für jeden eingeschalteten Arbeitsbereich ist das relevante Werkzeug in der Werkzeugleiste hervorgehoben.
Jeder Arbeitsbereich kann einzeln auf diese Weise konfiguriert werden.
Folgende Funktionen stehen zur Verfügung:
● |
|
Beziehungen und Tabellen ein / aus |
● |
|
Abfrage / Ansicht ein / aus |
● |
|
SQL-Editor ein / aus |
● |
|
Ergebnisse ein / aus |
Über die Werkzeugleiste werden die Ansichten der Arbeitsbereiche und die Bearbeitung der einzelnen SQL- und DML-Anweisungen gesteuert.
|
Zugehöriges Symbol |
Die aktuell bearbeitete oder aktivierte Anweisung wird ausgeführt.
|
Zugehöriges Symbol |
Ein- oder Ausschalten der Spalte "Funktion" im Arbeitsbereich Abfrage / Ansicht.
|
Zugehöriges Symbol |
Auswahl der Abfrageart durch Klick auf den Pfeil neben dem Symbol:
● |
|
SQL |
SELECT-Anweisung. Die Daten werden aus der Datenbank abgefragt. Nach Ausführung der Abfrage werden die Daten im Arbeitsbereich Ergebnisse ausgegeben. |
● |
|
DML |
UPDATE-Anweisung. In der Datenbanktabelle werden Zeilen geändert und / oder ergänzt. |
● |
|
DML |
INSERT-Anweisung. In der Datenbanktabelle werden Zeilen eingefügt. |
● |
|
DML |
DELETE-Anweisung. Aus der Datenbanktabelle werden Zeilen gelöscht. |
|
Zugehöriges Symbol |
Ein Formular zur Erstellung und Bearbeitung von Parametern wird geöffnet.
|
Zugehöriges Symbol |
Ein Formular zur Erstellung und Bearbeitung der Eigenschaften / Optionen wird geöffnet.
|
Zugehöriges Symbol |
Ein Formular zur Erstellung und Bearbeitung von Ausdrücken wird geöffnet.
Der Arbeitsbereich besitzt eine Registerleiste zum Umschalten zwischen zwei Ansichten.
Die beiden Register werden in diesem Abschnitt anhand des Abfragebeispiels Wasserknoten nach Armatur beschrieben.
Zwischen zwei Tabellenzeilen können fünf unterschiedliche Beziehungen definiert werden:
● |
|
INNER JOIN |
Werte, die beide Zeilen gemeinsam besitzen (Schnittmenge). |
● |
|
LEFT JOIN |
Werte, die beide Zeilen gemeinsam besitzen plus die verbleibenden Werte der linken Zeile. |
● |
|
RIGHT JOIN |
Werte, die beide Zeilen gemeinsam besitzen plus die verbleibenden Werte der rechten Zeile. |
● |
|
FULL JOIN |
Werte, welche die linke oder die rechte Zeile besitzt (Vereinigungsmenge). |
● |
|
CROSS JOIN |
Alle möglichen Beziehungen zwischen den Werten der linken und der rechten Zeile. |
Die in der Liste dargestellten Symbole werden in diesem Arbeitsbereich automatisch in Abhängigkeit von den gewählten Beziehungen gesetzt. Gemäß folgender Skizze besitzt das Abfragebeispiel ausschließlich LEFT JOIN - Beziehungen:
VsKnoten - AllgStrasse |
Aktuell gewählte Beziehung. |
||||||||||||
|
Rechts neben der Liste befindet sich das Detailformular der gewählten Beziehung. |
||||||||||||
|
Registerleiste. |
Im Detailformular werden alle Definitionen der in der Liste gewählten Beziehung angezeigt. Im Beispiel ist dies die Beziehung VsKnoten - AllgStrasse.
|
|
|
|
In diesem Bereich wird die Art der Beziehung definiert. |
||||||||||
Feldbeziehungen
|
|
|
|
Dieser Bereich stellt die aktuellen Feldbeziehungen dar. Am rechten Rand befindet sich die Werkzeugleiste. |
|
Zugehöriges Symbol |
Die Art der Beziehung wird über drei Kontrollkästchen definiert. Im Beispiel ist ein Häkchen gesetzt, und zwar im oberen Kontrollkästchen. Somit handelt es sich definitionsgemäß um eine LEFT JOIN - Beziehung.
|
Zugehöriges Symbol |
Links befindet sich eine Auswahlliste der möglichen Feldbeziehungen, in der Mitte die mögliche Verknüpfung, rechts die Auswahlliste der möglichen Felder.
Folgende Funktionen sind nutzbar:
● |
|
Neu |
Ergänzt in der Anweisung eine weitere Beziehung. |
● |
|
Löschen |
Löscht die aktive Beziehung aus der Liste. |
● |
|
Experten-Modus |
Wechselt zwischen der Standardansicht und der Experten-Ansicht. |
|
Zugehöriges Symbol |
Durch die gezeigte Schaltfläche ändert sich die Ansicht des Arbeitsbereiches Beziehungen. Unter Feldbeziehungen wird an Stelle der drei Auswahllisten ein Textfenster geöffnet.
Feldbeziehungen
|
|
|
Hier können die Beziehungen zwischen den Tabellen direkt eingegeben werden. Bereits vorhandene Beziehungen werden in ihrer SQL-Syntax angezeigt. Durch den erneuten Klick auf die Schaltfläche wird in die Normalansicht zurück geschaltet.
Das Beispiel zeigt eine Beziehung zwischen den Tabellen VsKnoten und AllgStrasse. Die Spalte IdRef -AllgStrasse- der Tabelle VsKnoten ist mit der Spalte Id der Tabelle AllgStrasse gleich gesetzt. Die Feldbeziehungen sind über die Auswahllisten nachträglich veränderbar. Alle Tabellenspalten der jeweiligen Tabelle sind hier anwählbar, um eigene Beziehungen zu erstellen.
Im diesem Bereich sind alle für die Beziehungen genutzten Tabellen gelistet.
|
|||||||||||||||||
VsKnoten |
Aktuell gewählte Tabelle. |
||||||||||||||||
|
Rechts neben der Liste befinden sich die Tabellenspalten. |
||||||||||||||||
|
Registerleiste. |
Folgende Funktionen sind nutzbar:
● |
|
Tabellen hinzufügen |
Fügt neue Tabellen für Ihre Abfrage hinzu. Diese Funktion kann auch im Register Beziehungen genutzt werden. |
● |
|
Tabelle löschen |
Löscht die markierte Tabelle aus der Auswahl. |
● |
|
Nach unten |
Die gewählte Tabelle wird in der Navigation weiter nach oben geschoben. |
● |
|
Nach oben |
Die gewählte Tabelle wird in der Navigation weiter nach unten geschoben. |
Die gewünschten Tabellenspalten sind über Kontrollkästchen aktivierbar. Die Skizze zeigt einen Ausschnitt zur Tabelle VsKnoten.
Bezeichnung |
||||||||
|
Die gewählten Spalten werden automatisch in die Abfrage integriert und erscheinen in den Arbeitsbereichen Abfrage / Ansicht und SQL-Editor. Dort erfolgt die weitere Bearbeitung.
In diesem Arbeitsbereich befinden sind alle über Beziehungen / Tabellen aktivierten Tabellenspalten innerhalb einer Listenansicht. Dort kann die SQL-Anweisung weiter editiert werden. Die Spalten der Listenansicht werden abhängig von der definierten SQL-Anweisung auf drei Arten angeordnet.
Für eine Datenbankabfrage mit SELECT-Anweisung werden die hier skizzierten Spalten dargestellt:
Für eine Datenbankabfrage mit SELECT-Anweisung und aktiver Schaltfläche Gruppieren werden die hier skizzierten Spalten dargestellt:
|
Spalte |
Alias |
Ausgabe |
Sortierungsart |
Sortierreihenfolge |
Kriterien |
Oder... |
Oder... |
In der Spalte Funktion wird die Art der Gruppierung definiert.
Für eine DML-Anweisung (INSERT, UPDATE und DELETE) werden die hier skizzierten Spalten dargestellt:
|
Sortierungsart |
Sortierreihenfolge |
Kriterien |
Oder... |
Oder... |
Anstelle der Spalten Spalte, Alias und Ausgabe sind die Spalten Spalte/Zuweisung und Zielfeld sichtbar.
Die Listenansichten verfügen über die in diesem Abschnitt beschriebenen Spalten.
|
Zugehöriges Symbol |
Je Zeile kann eine Datenbankspalte über die Auswahlliste gewählt werden.
Die betreffende Tabellenspalte erhält im Arbeitsbereich Ergebnisse den Alias-Namen. Falls kein Alias-Name festgelegt ist, wird dort der ursprüngliche Spaltenname ausgegeben..
|
Zugehöriges Symbol |
Bei gesetztem Häkchen wird die betreffende Tabellenspalte im Arbeitsbereich Ergebnisse ausgegeben.
|
Zugehöriges Symbol |
An dieser Stelle wird die Spalte aus der Auswahlliste übernommen, die bei einer INSERT-, UPDATE- oder DELETE-Anweisung automatisch in die gewünschte Tabellenspalte eingetragen werden soll.
|
Zugehöriges Symbol |
Über das Zielfeld wird die Tabellenspalte gewählt, in die der Wert übergeben werden soll. Die Auswahlliste bietet die Tabellenspalten aller in die Anweisung eingebundenen Tabellen an. Um beispielsweise den Wert Test in die Tabellenspalte Kommentar einzutragen, würde die Anweisung UPDATE folgende SQL-Syntax generieren:
SET {Kommentar} = 'Test'
|
Zugehöriges Symbol |
Über die Auswahlliste können folgende Sortierungsarten bestimmt werden:
Aufsteigend
Absteigend
Keine
Über Ganzzahlen kann die Reihenfolge der Sortierung vorgegeben werden. Bei fehlenden Eingaben wird in der Rangfolge Aliasname - Spaltenname sortiert.
|
Zugehöriges Symbol |
Für eine Datenbank-Abfrage mit Gruppierungen sind folgende Konventionen möglich:
Bedingung
Gruppierung
Ausdruck
Die Kriterien beschreiben die WHERE-Klausel einer SQL-Anweisung. Das Kriterium, beispielsweise is null kann direkt in die Spalte eingeben oder über den Ausdruckseditor erstellt werden.
Bei Nichterfüllung eines Kriterium greift die Abfrage auf das in der nächsten Spalte Oder... definierte Kriterium zurück. Zum Beispiel soll eine Abfrage alle Schmutzwasserhaltungen (Spalte: {AbwLeitung}.{Kanalart} -> Kriterien: "= 'KS' "), bei Nichterfüllung alle Mischwasserleitungen (Spalte: {AbwLeitung}.{Kanalart} -> Kriterien: "= 'KS' " -> Oder...: "= 'KM' ") wiedergeben.
In diesem Arbeitsbereich befindet sich die SQL-Anweisung in ihrer reinen Syntax. Aus allen in den Arbeitsbereichen Beziehungen / Tabellen und Abfrage / Ansicht gewählten und zugewiesenen Tabellen, Spalten sowie Beziehungen wird im SQL-Editor eine SQL-Befehlfolge synthetisiert.
SELECT {VsKnoten}.{Bezeichnung}, (SELECT DISTINCT {PicklistItem}.{Description} FROM ( {gePicklist} Picklist INNER JOIN {gePicklistItem} PicklistItem ON {Picklist}.{Id} = {PicklistItem}.{IdRef -gePicklist-}) |
Bei dem SQL-Editor handelt es sich um einen aktiven Arbeitsbereich. Alle in diesem Arbeitsbereich durchgeführten Änderungen wirken sich direkt auf die Arbeitsbereiche Beziehungen / Tabellen und Abfrage / Ansicht aus. Die SQL-Befehlsfolge kann direkt in den Editor eingegeben oder aus der Zwischenablage in einen vorhandenen String eingefügt werden.
Die Anweisungen können auch ohne den SQL-Editor erstellt werden. Zur Übersicht und Kontrolle wird aber empfohlen, den SQL-Editor einzublenden.
In diesen Arbeitsbereich werden die Ergebnisse der Datenbankabfrage ausgegeben. Die Ergebnisse von DML-Anweisungen werden nicht angezeigt.
|
|||||||||||
|
|||||||||||
|
Tabellarische Ausgabe der Ergebnisse. |
Folgende Funktionen sind nutzbar:
● |
|
|
Das aktuelle Abfrageergebnis kann direkt aus dem Arbeitsbereich heraus gedruckt werden. |
● |
|
Export nach Excel |
Das aktuelle Abfrageergebnis wird nach Excel übergeben. Sind keine Datensätze in der Ergebnistabelle markiert, werden alle Daten übergeben. Ist eine Spalte markiert, wird nur diese Spalte übergeben. Dasselbe gilt für markierte Zeilen. |
● |
|
Export nach Word |
Das aktuelle Abfrageergebnis wird nach Word übergeben. Sind keine Datensätze in der Ergebnistabelle markiert, werden alle Daten übergeben. Ist eine Spalte markiert, wird nur diese Spalte übergeben. Dasselbe gilt für markierte Zeilen. |
● |
|
Kopieren |
Diese Funktion ermöglicht es, markierte Datensätze in andere Anwendungen zu kopieren. |
● |
|
Aufsteigend |
Die markierte Ergebnisspalte kann nachträglich aufsteigend sortiert werden. |
● |
|
Absteigend |
Die markierte Ergebnisspalte kann nachträglich absteigend sortiert werden. |
● |
|
Navigation |
Für die Navigation durch die Datensätze stehen Ihnen die selben Schaltflächen zur Verfügung, wie sie in Access-Anwendungen zu finden sind. Mit den beiden äußeren Schaltflächen navigieren Sie zum jeweils ersten und letzten Datensatz, mit den beiden inneren navigieren Sie jeweils einen Datensatz vor oder zurück. |
● |
|
Connector |
Das Abfrageergebnis können Sie über den Connector in andere BaSYS-Module übergeben. Gemäß Ihrer Freischaltung und Synchronizer-Einstellungen bekommen Sie verschiedene BaSYS-Module angeboten. Voraussetzung dafür ist, das die ID- und die Objekttyp-Spalte über die Eigenschaften für den Synchronizer zugewiesen sind. |
● |
|
Geometrie |
Die Geometrien werden nicht als Datenbanktabelle sondern als XML-Dokument gespeichert. Dieses Dokument wird über die Tabellenspalte Geometries abgefragt. Falls die Abfrage Geometrien enthält, wird diese Schaltfläche aktiv. Die Ergebnisse können nach Excel und Word exportiert oder in die Zwischenablage kopiert werden. |
Die Ergebnisausgabe kann nachträglich gruppiert werden. Dazu kann die zu gruppierende Spaltenüberschrift per Drag & Drop in das Gruppierfeld gezogen werden. Die Gruppierung wird beim Export der Daten nach Excel, Word oder in die Zwischenablage nicht übernommen.
|
Zugehöriges Symbol |
Die Werteübergabe mit Hilfe von Parametern ist vor allem für Anweisungen sinnvoll, die weiter verwendet werden sollen. Dies erspart das nachträgliche Editieren der Anweisungen. Die erstellten Parameter werden nicht in einer Bibliothek, sondern anweisungsbezogen im skizzierten Formular verwaltet.
Parameter |
Kopfleiste. |
|||||||||
|
||||||||||
Parameterliste |
Parameterliste mit: |
|||||||||
|
|
Über * werden neue Parameter in der Liste ergänzt.
Es gibt zwei Möglichkeiten, erstellte Parameter in eine Abfrage einzubinden:
Manuelle Integration des Parameters in die SQL-Anweisung
Verwendung von Ausdrücken. Diese werden im Abschnitt zum Ausdruckseditor näher beschrieben.
Bei Ausführung der Abfrage erscheint abhängig vom gewählten Parametertyp ein zugehöriges Formular zur Auswahl oder Eingabe der erforderlichen Parameterwerte.
Folgende Funktionen sind nutzbar:
● |
|
Parameterbearbeitung Beenden. Bei nicht gespeicherten Änderungen erscheint eine Meldung. |
● |
|
Abbruch ohne speichern. |
● |
|
Speichern aller Änderungen. |
● |
|
Rückgängig (Alle Änderungen bis zum letzten Speichern). |
● |
|
Löschen des markierten Parameters. |
● |
|
Funktionalitätstest des Parameters außerhalb der SQL-Anweisung. |
Jede Parametereigenschaft wird in einer Doppelzeile der Parameterliste editiert.
In diese Spalte ist der Name des Parameters einzutragen. Anhand dieses Bezeichnung wird der Parameter bei der Bearbeitung der Ausdrücke wiedergefunden.
Da die Parameter mit Bezug auf die SQL-Anweisung gespeichert werden, erhalten sie innerhalb der SQL-Anweisung eine laufende Nummer. Diese Nummer wird automatisch generiert.
Die Beschriftung sollte dem Anwender intuitiv den Zweck der Anweisung verdeutlichen.
Die Vorgabe eines Standardwerts ist dann sinnvoll, wenn die damit verbundene Abfrage häufig mit dem selben Wert ausgeführt werden soll.
|
Zugehöriges Symbol |
Der Typ beschreibt die Art des Übergabewertes. Über die Auswahlliste können sechs verschiedene Parametertypen gewählt werden.
Dieser Parameter übergibt einen Text in die SQL-Anweisung.
Dieser Parameter übergibt eine Zahl in die SQL-Anweisung.
Dieser Parameter bezieht sich auf die übergeordneten Filtereinstellungen der Datenbank. Es handelt sich hierbei um die aktuelle Gemeinde, den aktuellen Arbeitsbereich, das aktuelle Berechnungsgebiet und die aktuelle Bibliothek. Die Auswahl der Einstellung wird über eine Auswahlliste gewährleistet.
Dieser Parameter greift auf die in der Datenbank vorhandenen Auswahllisten zu. So geht's:
Nach Wahl dieses Parametertyps öffnet sich ein Eingabefenster, in dem alle Auswahllisten tabellenförmig angeordnet sind.
Die Zeile mit der gewünschten Auswahlliste ist zu markieren.
Die Auswahlliste wird per Klick auf OK in den Parameter übernommen.
So geht's bei Ausführung der SQL-Anweisung:
Die Auswahlliste wird über die zugehörige Taste zu geöffnet. Die Auswahllisteneinträge werden nicht als Kürzel, sondern als Langtexte angezeigt.
Dort wird der gewünschte Eintrag gewählt.
Intern wird dann das Kürzel an die Abfrage übergeben.
Der gewünschte Parameter kann aus einer Abfrage stammen. So geht's:
1. |
Auswahl des Parametertyps Abfrage. |
2. |
Dadurch öffnet sich automatisch die Dokumentenverwaltung des Configuration Explorers. |
3. |
|
Aus der Liste wird eine Abfrage gewählt und über die gezeigte Funktion übernommen. |
Weitere Details zur Dokumentenverwaltung werden in der generellen Hilfe zum Configuration Explorer beschrieben.
Über die Mehrfachauswahl kann die Abfrage auf beliebig gewählte Objekte eines Objekttyps gefiltert werden:
Bei der Definition des Parameters wird der Objekttyp aus einer Liste gewählt.
Bei der Ausführung der Abfrage können die Objekte des Objekttyps grafisch oder über die kombinierte Verwendung von Kontrollkästchen und Schaltflächen gewählt werden. Die Abfrage wird dann nur auf die gewählten Objekte angewendet.
Die Mehrfachauswahl wird in diesem Abschnitt beispielhaft anhand des Objekttyps AbwHaltung erläutert.
Alle für die Mehrfachauswahl in Frage kommenden Objekttypen sind in einem Formular gelistet.
Objekttypen selektieren |
Kopfleiste. |
||||||
|
Gewählter Objekttyp AbwHaltung. |
||||||
|
Schaltflächenleiste. |
Bei Ausführung der Abfrage wird die skizzierte Liste zur Auswahl der gewünschten Haltungen geöffnet.
Objekte selektieren |
Kopfleiste. |
|||||||||
|
Objekttyp. |
|||||||||
|
||||||||||
|
Auswahl-Schaltflächen. |
|||||||||
|
Schaltflächenleiste. |
Funktionalität der Schaltflächen:
● |
Alle auswählen |
Es werden alle Objekte, in diesem Beispiel alle Haltungen, für die Abfrage gewählt. |
● |
Keine auswählen |
Alle vorhandenen Häkchen werden zurückgesetzt. Es sind keine Objekte mehr gewählt. |
● |
Alle angeschlossenen |
Falls bereits Haltungen gewählt sind, werden die anschließenden Haltungen ebenfalls markiert. Über die Taste wird sozusagen eine kleine Fließwegverfolgung in beide Richtungen durchgeführt. |
● |
Grafische Selektion |
Über diese Schaltfläche wird automatisch in das geöffnete Modul BaSYS-Plan gewechselt. Nach der grafischen Wahl der Haltungen sind in der Liste automatisch die relevanten Häkchen gesetzt. |
● |
Strang |
Die Haltungen werden anhand der übergeordneten Stränge gewählt. Diese Option kann nur dann verwendet werden, wenn das Kanalnetz mit Strängen geplant wurde. |
● |
OK |
Die Eingabe wird übernommen und das Formular geschlossen. |
● |
Abbrechen |
Das Formular wird ohne Übernahme der Daten geschlossen. |
|
Zugehöriges Symbol |
Über eine Auswahlliste kann ein Standardfilter auf folgende Objekte gesetzt werden:
Aktuelle Gemeindevariante
Aktuelle Gemeinde
Aktuelle Projektvariante
Aktueller Arbeitsbereich
Aktuelle Hydraulikvariante
|
Zugehöriges Symbol |
Über dieses Kontrollkästchen wird gesteuert, ob der Parameter-Dialog der Abfrage angezeigt werden soll oder nicht.
|
Zugehöriges Symbol |
Über das Formular Optionen werden die Eigenschaften der Abfrage festgelegt.
Optionen |
Kopfleiste. |
|||||||||
|
Selektionseigenschaften. |
|||||||||
|
Synchronisation zwischen den Datenbankobjekten und den Geometriedaten. |
|||||||||
DML
|
Zieltabelle einer DML-Abfrage. |
|||||||||
|
Schaltflächenleiste. |
Über die hier eingegebenen Werte wird der Zugriff auf die Zeilen definiert.
|
Zugehöriges Symbol |
Bei gesetztem Häkchen werden alle redundanten Ergebniszeilen der Datenbankabfrage unterdrückt. Ist das Häkchen nicht gesetzt, werden also alle Ergebniszeilen zurückgegeben.
|
Zugehöriges Symbol |
Bei gesetztem Häkchen sollen nur n Ergebniszeilen zurückgegeben werden. Die Zahl muss dann in das zugehörige Feld eingegeben werden. Ist das Häkchen nicht gesetzt, werden also alle Ergebniszeilen zurückgegeben.
Über dieses Feld kann die gewünschte maximale Zahl der Ergebniszeilen definiert werden. Dafür muss das Häkchen im Kontrollkästchen TOP gesetzt sein.
Die drei Eingabefelder steuern die Synchronisation zwischen den Datenbankobjekten und den Geometriedaten in den externen XML-Dokumenten.
Beispielsweise sollen die Geometrien auf Grundlage der Leitungsdaten abgefragt werden. Dazu müssen die Tabellenspalten ID, Objekttyp und Geometries für die Abfrage zugewiesen sein. Das Abfrageergebnis und die Handhabung der Geometrien wird in den Hilfeeinträgen Ergebnisse und Abfragebeispiele näher erläutert.
|
Zugehöriges Symbol |
An dieser Stelle ist die Spalte mit der eindeutigen Objektkennung, auf die sich die Abfrage beziehen soll, einzutragen.
|
Zugehöriges Symbol |
An dieser Stelle ist die Spalte des abzufragenden Objekttyps einzutragen.
|
Zugehöriges Symbol |
An dieser Stelle ist die Spalte der abzufragenden Objektgeometrien einzutragen.
|
Zugehöriges Symbol |
Die Ausdrücke dienen in erster Linie der vereinfachten Bearbeitung der Einschränkungen (WHERE-Klausel) in einer SQL-Anweisung.
Im Ausdruckseditor können hierfür vorgefertigte Parameter oder Tabellen verwendet werden. Zusätzlich verfügt der Ausruckseditor über einen Arbeitsbereich zur freien Texteingabe.
Die Ausdrücke erscheinen im Arbeitsbereich <Abfrage/Ansicht> in der Spalte <Kriterien>. Um dort einen Ausdruck einzufügen,
Ist der Cursor in die entsprechende Zeile der Spalte <Kriterien> zu setzen.
Ist die Schaltfläche <Expression> der Werkzeugleiste anzuklicken.
Nach erfolgreicher Eingabe erscheint die Expression in der WHERE-Klausel des Arbeitsbereichs <SQL-Editor>.
Im Textfenster können die Ausdrücke frei eingegeben werden. Für die Eingabe gelten die syntaktischen Vorgaben der SQL-Anweisungen. Die häufig verwendeten Operatoren sind im rechten Bereich als Schaltflächen verfügbar.
Im Textfenster werden einfache Ausdrücke wie is null, aber auch komplexe IF-Anweisungen eingegeben. Per Klick auf <OK> sind die Eingaben:
Im Arbeitsbereich <Abfrage/Ansicht> in Spalte <Kriterien> sichtbar.
<SQL-Editor> in der SQL-Anweisung sichtbar.
Im unteren linken Bereich des Ausdruckseditors befindet sich der Auswahlbereich für vorgefertigte Parameter und eingebundene Tabellen.
Alle für die SQL-Anweisung definierten Parameter und eingebundenen Tabellen werden hier angezeigt und können per Doppelklick gewählt werden. Im hier angeführten Beispiel ist ein Parameter mit der Bezeichnung "Bezeichnung" verwendet worden.
Sollten Sie einen Parameter des Typs "Mehrfachauswahl" in eine SQL-Anweisung einbinden, wird der Parameter über die Funktion "in ()" mit der jeweiligen ID-Spalte verbunden, nicht mit der Spalte "Bezeichnung". In diesem Fall ergibt sich folgende Syntax:
SELECT {AbwLeitung}.{Bezeichnung}, {AbwKnoten}.{Bezeichnung} as Zulauf, {AbwKnoten_1}.{Bezeichnung} as Ablauf
FROM (( {AbwKnoten} AbwKnoten
INNER JOIN {AbwLeitung} AbwLeitung ON {AbwLeitung}.{IdRefAnf -AbwKnoten-} = {AbwKnoten}.{Id})
INNER JOIN {AbwKnoten} AbwKnoten_1 ON {AbwLeitung}.{IdRefEnd -AbwKnoten-} = {AbwKnoten_1}.{Id})
WHERE ({AbwLeitung}.{Id} in ([Bezeichnung] ))
ORDER BY {AbwLeitung}.{Bezeichnung} ASC
Impressum der Dokumentation |
Stand: |
24.02.2014 |
Verantwortlich: |
Jörg Martin |
Copyright: |
Barthauer Software GmbH |
Erreichbarkeit: |
Homepage: www.barthauer.de |