Abfragen (SQL) - Query Commander

Benutzerdefinierte Abfragen greifen direkt auf die Struktur der BaSYS Datenbank zu. Die Abfragen werden im sogenannten Query-Commander 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.

Abschnitte der Hilfe

In der Hilfe werden folgende Abschnitte beschrieben:

Einführung in die Abfrage-Sprachen

Zurück

In diesem Abschnitt geht es um folgende Themen:

Einige Abfragebeispiele ergänzen die Einführung in die beiden Datenbank-Abfrage-Sprachen.

Wichtiger Hinweis

Zurück

In Abfragen werden keine Gänsefüßchen (") sondern ausschließlich Apostrophs (') genutzt.

SQL - Structured Query Language

Zurück

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.

SELECT-Anweisung

Zurück

Über die SELECT-Anweisung werden gewünschte Inhalte der Datenbank als Tabelle ausgegeben.

Übersicht

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.

Beispiel

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

Alle Spalten wiedergeben

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

Spaltennamen umbenennen

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

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

WHERE-Klausel - Zeilen einschränken

Zurück

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

Beispiel

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

  

AND

In obigem Beispiel sind mehrere Einschränkungskriterien über den Operator AND verknüpft. Dadurch kann die Abfrage noch weiter eingeschränkt werden.

JOIN-Bedingung - Mehrere Tabellen

Zurück

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.

Beispiel

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

GROUP BY - Anweisung

Zurück

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.

Beispiel

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

DML - Data Manipulation Language

Zurück

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.

INSERT-Anweisung

Zurück

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.

Elemente

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.

Übersicht

In vereinfachter Form kann die INSERT-Syntax so aussehen:

 

INSERT INTO

table_or_view ({column}, {column}, ...)

 

SELECT

value, value....

 

FROM

table_sources

Beispiel

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]')

UPDATE-Anweisung

Zurück

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.

Elemente

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.

Beispiele

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])

Erläuterungen

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.

Unterabfragen

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.

DELETE-Anweisung

Zurück

Die DELETE-Anweisung entfernt eine Zeile oder mehrere Zeilen einer Tabelle oder Sicht.

Übersicht

In vereinfachter Form kann die DELETE-Syntax so aussehen:

 

DELETE

table_or_view

 

FROM

table_sources

 

WHERE

search_condition

Erläuterungen

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.

Wichtiger Hinweis

Aus der BaSYS-Datenbank dürfen auf keinen Fall Tabellen gelöscht werden, weil damit die Datenbankstruktur zerstört würde!

Beispiel

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

DML auf Oracle

Zurück

Für Abfragen auf Oracle gelten einige Besonderheiten, auf die in diesem Abschnitt kurz eingegangen wird.

JOIN-Bedingung

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.

SELECT FROM

Anstelle der JOIN Klauseln sind SELECT Ausdrücke zu verwenden, um auf Inhalte anderer Tabellen zuzugreifen.

Vorsicht!

Damit der Query Manager die Abfrage verarbeiten kann, muss dennoch eine FROM-Klausel vorhanden sein, welche die Zieltabelle der Abfrage enthält.

Beispiel

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.

Abfragebeispiele

Zurück

In diesem Abschnitt geht es um folgende Themen:

Die in diesem Abschnitt beschriebenen Beispiele können sofort genutzt werden. So geht's:

  1. Die Syntax der Abfrage wird zunächst in den Arbeitsbereich SQL-Editor kopiert.

  2. Beim ersten Ausführen der Abfrage erscheint eine Meldung, da die Verbindung zu den Tabellen noch nicht erstellt wurde.

  3. Nach Bestätigung der Meldung werden alle Tabellen und Beziehungen eingebunden.

  4. Die neu erstellte Abfrage kann nun gespeichert und anschließend erneut ausgeführt werden.

Abfrage mit Geometrien

Zurück

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.

Zuordnung der Geometriespalte

So geht's:

  1. Wahl der Spalte {AbwEinzugsflaeche}.{Geometries} im Arbeitsbereich Beziehungen/Tabellen.

  2. Über die Schaltfläche Eigenschaften der Werkzeugleiste wird der Auswahlliste Geometrie-Spalte die Tabellenspalte {AbwEinzugsflaeche}.{Geometries} zugewiesen.

  3. Die Abfrage wird danach gespeichert und ausgeführt.

  4. 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

Weitere Abfragen mit Geometrien

Zurück

Im Folgenden sind Beispiele weiterer Abfragen mit Geometrien zu finden.

Haltungsgeometrien

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

OjektId-Spalte

{AbwLeitung}.{Id}

Ojekttyp-Spalte

{AbwLeitung}.{Objekttyp}

Geometrie-Spalte

{AbwLeitung}.{Geometries}

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.

Knotengeometrien

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.

Abfrage mit ORDER BY

Zurück

 

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

Abfrage mit JOIN

Zurück

Im Folgenden werden Abfragen mit Inner und Left und Right Join vorgestellt.

Inner Join

 

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

Left Join

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)

Right Join

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})

Geschachtelte Abfrage

Zurück

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})

Benutzeroberfläche

Zurück

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.

 

Globale Werkzeugleiste.

 

Ansichten und Werkzeuge.

Beziehungen und Tabellen

Details zum linken Bereich

 

 

Arbeitsbereiche.

Globale Werkzeugleiste

Zugehörige Symbole

Zurück

Über die Symbole der Werkzeugleiste können die Voreinstellungen gespeichert sowie alle nach dem letzten Speichern erfolgten Änderungen zurückgesetzt werden.

Ansichten der Arbeitsbereiche

Zurück

Ü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

Werkzeuge der Arbeitsbereiche

Zurück

Über die Werkzeugleiste werden die Ansichten der Arbeitsbereiche und die Bearbeitung der einzelnen SQL- und DML-Anweisungen gesteuert.

Ausführen

Zugehöriges Symbol

Die aktuell bearbeitete oder aktivierte Anweisung wird ausgeführt.

Gruppieren

Zugehöriges Symbol

Ein- oder Ausschalten der Spalte "Funktion" im Arbeitsbereich Abfrage / Ansicht.

Abfrageart

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.

Parameter

Zugehöriges Symbol

Ein Formular zur Erstellung und Bearbeitung von Parametern wird geöffnet.

Eigenschaften

Zugehöriges Symbol

Ein Formular zur Erstellung und Bearbeitung der Eigenschaften / Optionen wird geöffnet.

Ausdruck

Zugehöriges Symbol

Ein Formular zur Erstellung und Bearbeitung von Ausdrücken wird geöffnet.

Beziehungen und Tabellen

Zurück

Der Arbeitsbereich besitzt eine Registerleiste zum Umschalten zwischen zwei Ansichten.

Die beiden Register werden in diesem Abschnitt anhand des Abfragebeispiels Wasserknoten nach Armatur beschrieben.

Beziehungen

Zurück

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.

:

VsKnoten - AllgStrasse

:

VsKnoten - VsDruckzone

:

VsKnoten - VsVersorgungszone

:

VsKnoten - AllgOrtsteil

Rechts neben der Liste befindet sich das Detailformular der gewählten Beziehung.

Beziehungen

Tabellen

 

Registerleiste.

Detailformular

Zurück

Im Detailformular werden alle Definitionen der in der Liste gewählten Beziehung angezeigt. Im Beispiel ist dies die Beziehung VsKnoten - AllgStrasse.

VsKnoten

AllgStrasse

Alle Zeilen von VsKnoten

Alle Zeilen von AllgStrasse

Alle Zeilen von VsKnoten mit allen ...

 

In diesem Bereich wird die Art der Beziehung definiert.

Feldbeziehungen

IdRef -AllgStrasse-

 

=

 

Id

 

Dieser Bereich stellt die aktuellen Feldbeziehungen dar.

Am rechten Rand befindet sich die Werkzeugleiste.

Art der Beziehung

Zugehöriges Symbol

Zurück

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.

Feldbeziehungen

Zugehöriges Symbol

Zurück

Links befindet sich eine Auswahlliste der möglichen Feldbeziehungen, in der Mitte die mögliche Verknüpfung, rechts die Auswahlliste der möglichen Felder.

Werkzeugleiste

Zurück

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.

Experten-Modus

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

{VsKnoten}.{IdRef -AllgStrasse-} = {AllgStrasse}.{Id}

 

 

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.

Beispiel

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.

Tabellen

Zurück

Im diesem Bereich sind alle für die Beziehungen genutzten Tabellen gelistet.

 

Werkzeugleiste.

VsKnoten

Aktuell gewählte Tabelle.

Tabellen

:

VsKnoten

:

AllgStrasse

:

VsDruckzone

:

VsVersorgungszone

:

AllgOrtsteil

Rechts neben der Liste befinden sich die Tabellenspalten.

Beziehungen

Tabellen

 

Registerleiste.

Werkzeugleiste

Zurück

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.

Tabellenspalten

Zurück

Die gewünschten Tabellenspalten sind über Kontrollkästchen aktivierbar. Die Skizze zeigt einen Ausschnitt zur Tabelle VsKnoten.

Bezeichnung

ABSDurchflussSchwelle

ABSKlappenart

ABSVMaxDurchfluss

Aktiv

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.

Abfrage / Ansicht

Zurück

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.

Datenbankabfrage

Für eine Datenbankabfrage mit SELECT-Anweisung werden die hier skizzierten Spalten dargestellt:

Datenbankabfrage mit Gruppierungen

Für eine Datenbankabfrage mit SELECT-Anweisung und aktiver Schaltfläche Gruppieren werden die hier skizzierten Spalten dargestellt:

 

Spalte

Alias

Ausgabe

Sortierungsart

Funktion

Sortierreihenfolge

Kriterien

Oder...

Oder...

In der Spalte Funktion wird die Art der Gruppierung definiert.

DML-Anweisung

Für eine DML-Anweisung (INSERT, UPDATE und DELETE) werden die hier skizzierten Spalten dargestellt:

 

Spalte/Zuweisung

Zielfeld

Sortierungsart

Sortierreihenfolge

Kriterien

Oder...

Oder...

Anstelle der Spalten Spalte, Alias und Ausgabe sind die Spalten Spalte/Zuweisung und Zielfeld sichtbar.

Spaltenübersicht

Die Listenansichten verfügen über die in diesem Abschnitt beschriebenen Spalten.

Spalte

Zugehöriges Symbol

Zurück

Je Zeile kann eine Datenbankspalte über die Auswahlliste gewählt werden.

Alias

Zurück

Die betreffende Tabellenspalte erhält im Arbeitsbereich Ergebnisse den Alias-Namen. Falls kein Alias-Name festgelegt ist, wird dort der ursprüngliche Spaltenname ausgegeben..

Ausgabe

Zugehöriges Symbol

Zurück

Bei gesetztem Häkchen wird die betreffende Tabellenspalte im Arbeitsbereich Ergebnisse ausgegeben.

Spalte/Zuweisung

Zugehöriges Symbol

Zurück

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.

Zielfeld

Zugehöriges Symbol

Zurück

Ü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'

Sortierungsart

Zugehöriges Symbol

Zurück

Über die Auswahlliste können folgende Sortierungsarten bestimmt werden:

  • Aufsteigend

  • Absteigend

  • Keine

Sortierreihenfolge

Zurück

Über Ganzzahlen kann die Reihenfolge der Sortierung vorgegeben werden. Bei fehlenden Eingaben wird in der Rangfolge Aliasname - Spaltenname sortiert.

Funktion

Zugehöriges Symbol

Zurück

Für eine Datenbank-Abfrage mit Gruppierungen sind folgende Konventionen möglich:

  • Bedingung

  • Gruppierung

  • Ausdruck

Kriterien

Zurück

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.

Oder...

Zurück

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.

SQL-Editor

Zurück

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.

Ergebnisse

Zurück

In diesen Arbeitsbereich werden die Ergebnisse der Datenbankabfrage ausgegeben. Die Ergebnisse von DML-Anweisungen werden nicht angezeigt.

...

 

Werkzeugleiste.

 

Gruppieren.

 

Tabellarische Ausgabe der Ergebnisse.

Werkzeugleiste

Zurück

Folgende Funktionen sind nutzbar:

Drucken

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.

Gruppieren

Zurück

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.

Parameter

Zugehöriges Symbol

Zurück

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.

 

Werkzeugleiste.

Parameterliste

Parameterliste mit:

 

Gemeindevariante

1

Gemeindevariante

 

 

Fest

Aktuelle Gemeindevariante [46]

  • Angelegte Parameter

Über * werden neue Parameter in der Liste ergänzt.

Verwendung der Parameter

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.

Werkzeugleiste

Zurück

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.

Parametereigenschaften

Zurück

Jede Parametereigenschaft wird in einer Doppelzeile der Parameterliste editiert.

Name

Zurück

In diese Spalte ist der Name des Parameters einzutragen. Anhand dieses Bezeichnung wird der Parameter bei der Bearbeitung der Ausdrücke wiedergefunden.

Nr.

Zurück

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.

Beschriftung

Zurück

Die Beschriftung sollte dem Anwender intuitiv den Zweck der Anweisung verdeutlichen.

Standard

Zurück

Die Vorgabe eines Standardwerts ist dann sinnvoll, wenn die damit verbundene Abfrage häufig mit dem selben Wert ausgeführt werden soll.

Typ

Zugehöriges Symbol

Zurück

Der Typ beschreibt die Art des Übergabewertes. Über die Auswahlliste können sechs verschiedene Parametertypen gewählt werden.

Text

Dieser Parameter übergibt einen Text in die SQL-Anweisung.

Zahl

Dieser Parameter übergibt eine Zahl in die SQL-Anweisung.

Fest

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.

Auswahlliste

Dieser Parameter greift auf die in der Datenbank vorhandenen Auswahllisten zu. So geht's:

  1. Nach Wahl dieses Parametertyps öffnet sich ein Eingabefenster, in dem alle Auswahllisten tabellenförmig angeordnet sind.

  2. Die Zeile mit der gewünschten Auswahlliste ist zu markieren.

  3. Die Auswahlliste wird per Klick auf OK in den Parameter übernommen.

So geht's bei Ausführung der SQL-Anweisung:

  1. Die Auswahlliste wird über die zugehörige Taste zu geöffnet. Die Auswahllisteneinträge werden nicht als Kürzel, sondern als Langtexte angezeigt.

  2. Dort wird der gewünschte Eintrag gewählt.

  3. Intern wird dann das Kürzel an die Abfrage übergeben.

Abfrage

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.

Mehrfachauswahl

Ü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.

Definition des Parameters

Alle für die Mehrfachauswahl in Frage kommenden Objekttypen sind in einem Formular gelistet.

Objekttypen selektieren

Kopfleiste.

AbwFettabscheider

AbwGerinne

AbwHaltung

Gewählter Objekttyp AbwHaltung.

OK

 

Abbrechen

Schaltflächenleiste.

Ausführung der Abfrage

Bei Ausführung der Abfrage wird die skizzierte Liste zur Auswahl der gewünschten Haltungen geöffnet.

Objekte selektieren

Kopfleiste.

AbwHaltung

Objekttyp.

RW_01-0045

RW_01-0046

RW_01-0047

 

Alle wählen

 

Keine wählen

 

Alle angeschlossenen

 

Graf. Sel.

 

Strang

Auswahl-Schaltflächen.

OK

 

Abbrechen

Schaltflächenleiste.

Schaltflächen

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.

Art des Parameters

Zugehöriges Symbol

Zurück

Über eine Auswahlliste kann ein Standardfilter auf folgende Objekte gesetzt werden:

  • Aktuelle Gemeindevariante

  • Aktuelle Gemeinde

  • Aktuelle Projektvariante

  • Aktueller Arbeitsbereich

  • Aktuelle Hydraulikvariante

Sichtbar

Zugehöriges Symbol

Zurück

Über dieses Kontrollkästchen wird gesteuert, ob der Parameter-Dialog der Abfrage angezeigt werden soll oder nicht.

Eigenschaften

Zugehöriges Symbol

Zurück

Über das Formular Optionen werden die Eigenschaften der Abfrage festgelegt.

Optionen

Kopfleiste.

Selektionseigenschaften

DISTINCT (Doppelte Ergebniszeilen ignorieren)

TOP (nur die ersten <n> Ergebniszeilen)

n =

1

Selektionseigenschaften.

Synchronizer

OjektId-Spalte

{DB-Spalte}.{Id}

Ojekttyp-Spalte

{DB-Spalte}.{Objekttyp}

Geometrie-Spalte

{DB-Spalte}.{Geometries}

Synchronisation zwischen den Datenbankobjekten und den Geometriedaten.

DML

Zieltabelle

 

Zieltabelle einer DML-Abfrage.

OK

 

Abbrechen

Schaltflächenleiste.

Selektionseigenschaften

Zurück

Über die hier eingegebenen Werte wird der Zugriff auf die Zeilen definiert.

DISTINCT

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.

TOP

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.

n =

Ü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.

Synchronizer

Zurück

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.

ObjektId-Spalte

Zugehöriges Symbol

An dieser Stelle ist die Spalte mit der eindeutigen Objektkennung, auf die sich die Abfrage beziehen soll, einzutragen.

Objekttyp-Spalte

Zugehöriges Symbol

An dieser Stelle ist die Spalte des abzufragenden Objekttyps einzutragen.

Geometrie-Spalte

Zugehöriges Symbol

An dieser Stelle ist die Spalte der abzufragenden Objektgeometrien einzutragen.

Ausdrücke

Zugehöriges Symbol

Zurück

Die Ausdrücke dienen in erster Linie der vereinfachten Bearbeitung der Einschränkungen (WHERE-Klausel) in einer SQL-Anweisung.

Ausdruckseditor

Im Ausdruckseditor können hierfür vorgefertigte Parameter oder Tabellen verwendet werden. Zusätzlich verfügt der Ausruckseditor über einen Arbeitsbereich zur freien Texteingabe.

So geht's

Die Ausdrücke erscheinen im Arbeitsbereich <Abfrage/Ansicht> in der Spalte <Kriterien>. Um dort einen Ausdruck einzufügen,

  1. Ist der Cursor in die entsprechende Zeile der Spalte <Kriterien> zu setzen.

  2. Ist die Schaltfläche <Expression> der Werkzeugleiste anzuklicken.

  3. Nach erfolgreicher Eingabe erscheint die Expression in der WHERE-Klausel des Arbeitsbereichs <SQL-Editor>.

Textfenster

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.

Parameter / Tabellen

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
Pillaustraße 1a
D-38126 Braunschweig

Erreichbarkeit:

Homepage:  www.barthauer.de
E-Mail: info@barthauer.de