> For the complete documentation index, see [llms.txt](https://docs.videc.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.videc.de/june5-3.7/datenquellenunterstuetzung-und-einbindung/microsoft-ole-db/sql-befehle.md).

# SQL Befehle

Es werden grundsätzlich zwei Befehlsgruppen unterschieden. Die Befehle zur Ermittlung der Messgrößen und die Befehle zum Darstellen der archivierten Daten.

## Ermittlung der Messgrößen

Der Befehl zur Ermittlung der Messgrößen ist eine SQL SELECT-Anweisung, die nach der folgenden Syntax aufgebaut ist:

```sql
SELECT [MyID] AS TagID, [MyName] AS TagName, [MyUnit] AS TagUnit FROM [MyTags]
```

Der Befehl zur Ermittlung der Messgrößen enthält vier Platzhalter.

* \[MyID] legt fest welche Spalte die ID der Messgröße enthält.
* \[MyName] legt fest welche Spalte den Namen der Messgröße enthält.
* \[MyUnit] legt fest aus welcher Spalte die Einheit für jede Messgröße ermittelt wird.
* \[MyTags] legt fest aus welcher Tabelle die Messgrößen ermittelt werden.

Für die im Kapitel [SQL Tabelle Messgrößen](/june5-3.7/datenquellenunterstuetzung-und-einbindung/microsoft-ole-db/sql-tabelle-messgroessen.md) dargestellte Tabelle können einige Eigenschaften der Messgrößen mit folgenden SQL-Befehlen ermittelt werden:

{% code overflow="wrap" %}

```sql
SELECT [TagID] AS TagID, [TagShortName] AS TagShortName, [TagName] AS TagName, [TagDescription] AS TagDescription, [TagUnit] AS TagUnit FROM [Variable]
SELECT [TagID] AS TagID, [TagName] AS TagName, [TagUnit] AS TagUnit FROM [Variable]
SELECT [TagID] AS TagID, [TagID] AS TagName, [TagUnit] AS TagUnit FROM [Variable]
```

{% endcode %}

{% hint style="info" %}

* Die Platzhalter zur Bestimmung der eindeutigen Identifikation, des Namens und der Einheit sind zwingend zu parametrieren.
* Wenn der Platzhalter zur Ermittlung des Kurznamens nicht explizit im Befehl enthalten ist, wird der Kurzname über den Platzhalter zur Ermittlung der eindeutige Identifikation bestimmt.
  {% endhint %}

## Ermittlung der Messwerte

Die Befehle zur Ermittlung der Messwerte sind SQL SELECT-Anweisungen, die nach der folgenden Syntax aufgebaut sind.

{% code overflow="wrap" %}

```sql
SELECT [MyValue] AS Value, [MyTimestamp] AS Timestamp FROM [MyData] WHERE [MyId] =<<TagID>> AND [MyTimeStamp]>  <<TS_From>> AND [MyTimeStamp]<= <<TS_To>>
```

{% endcode %}

In dieser SQL-Anweisung sind sowohl Schlüsselwörter als auch Platzhalter zu finden. Die Schlüsselwörter werden von doppelten spitzen Klammern umschlossen. Vor der Durchführung eines Befehls werden die Schlüsselwörter automatisch ersetzt.

* \[MyValue] legt fest aus welcher Spalte Daten gelesen werden.
* \[MyTimestamp] legt fest aus welcher Spalte die Zeitstempel der Daten gelesen werden.
* \[MyData] legt fest aus welcher Tabelle die Daten gelesen werden.
* \[MyID] legt die ID der Messgrößen fest, deren Daten importiert werden.

Für die im Kapitel [SQL Tabelle Messwerte](/june5-3.7/datenquellenunterstuetzung-und-einbindung/microsoft-ole-db/sql-tabelle-messwerte.md) dargestellte Tabelle können die Daten mit folgenden SQL-Befehlen ermittelt werden.

{% code overflow="wrap" %}

```sql
SELECT [RawValue] AS Value, [RawDateTime] AS Timestamp FROM [RawData] WHERE [TagID] =<<TagID>> AND [RawDateTime]>=  <<TS_From>> AND [RawDateTime]< <<TS_To>>
```

{% endcode %}

Falls die Tabelle auch verdichtete Daten bereitstellt, muss ein Filter zur Festlegung des Verdichtungsintervall dem SQL-Befehl hinzugefügt werden. Das Verdichtungsintervall muss zu den vordefinierten Verdichtungsintervallen passen die in JUNE5 definiert sind. Die folgende Tabelle stellt die Verdichtungsintervalle von JUNE5 für die OLE DB Datenquelle dar.

| Verdichtungsintervall | Beschreibung (Intervall) |
| --------------------- | ------------------------ |
| PROCESS               | Rohwert                  |
| INTERVAL1             | 1 Minute                 |
| INTERVAL2             | 5 Minuten                |
| INTERVAL3             | 15 Minuten               |
| INTERVAL4             | 30 Minuten               |
| INTERVAL5             | 1 Stunde                 |
| INTERVAL6             | 2 Stunden                |
| DAY1                  | Tag                      |
| WEEK                  | Woche                    |
| MONTH                 | Monat                    |
| YEAR                  | Jahr                     |

Eine SQL Anweisung zum Abfragen von Stundenwerten kann wie eine der folgenden Anweisungen aufgebaut werden:

{% code overflow="wrap" %}

```sql
SELECT [MyValue] AS Value, [MyDateTime] AS Timestamp FROM [MyHourData] WHERE [MyID] =<<TagID>> AND [MyDateTime]>  <<TS_From>> AND [MyDateTime]<= <<TS_To>>
```

{% endcode %}

## Ermittlung der Ereignisse

Der Befehl zur Ermittlung der Ereignisse ist eine SQL SELECT-Anweisung. Für die im Kapitel [SQL Tabelle Ereignisse](/june5-3.7/datenquellenunterstuetzung-und-einbindung/microsoft-ole-db/sql-tabelle-ereignisse.md) dargestellte Tabelle können die Ereignisse mit folgendem SQL-Befehl ermittelt werden.

{% code overflow="wrap" %}

```sql
SELECT [Von], [Bis], [Quittiert], [Namensraum], [ID], [Name], [Beschreibung], [Priorität], [Bedingung], [Status], [Wert], [Kategorie], [Benutzer], FROM [Energy].[dbo].[Events]
```

{% endcode %}

*Dieser SQL-Befehl darf keine ORDER BY-Klausel enthalten!*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.videc.de/june5-3.7/datenquellenunterstuetzung-und-einbindung/microsoft-ole-db/sql-befehle.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
