Seite 1 von 1

Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 11:27
von kernm23
Ich habe eine einfache Abfrage nach einem Datumfeld (Select "DAT" From "Tabelle" Where "Text" = 'A').

ich möchte mir mit einer Abfrage ausgeben lassen, welche Datumswerte es in dem Feld DAT gibt und wieviele Datensätze zu den jeweiligen Datumseingaben existieren.

Kann mir jemand helfen?

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 12:07
von nikki

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 12:51
von kernm23
hab´s folgendermaßen versucht:

Select Count (Distinct "DAT") From "Tabelle" Where "Text" = 'A'

leider folgende Fehlermeldung:

die Dateninhalte konnten nicht geladen werden. Die Abfrage kann nicht ausgeführt werden. Sie ist zu komplex.

Was mache ich falsch?

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 12:54
von kernm23
und gibt´s die Anleitung zu den SQL-Befehlen auch als PDF zum Download?

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 14:54
von RobertG
Hallo kernm23,
kernm23 hat geschrieben: Do, 28.06.2018 12:54 und gibt´s die Anleitung zu den SQL-Befehlen auch als PDF zum Download?
Das Handbuch enthält für die interne Datenbank alle HSQLDB-Befehle.

Zu Deinem Problem:

Code: Alles auswählen

Select "DAT" From "Tabelle" Where "Text" = 'A'
zeigt alle Datumswerte, die in "Text" ein 'A' stehen haben.

Code: Alles auswählen

Select "DAT", COUNT("DAT") From "Tabelle" Where "Text" = 'A' GROUP BY "DAT"
zeigt alle unterschiedlichen Datumswerte an und zusätzlich dazu die entsprechende Anzahl.

Einfach mit der GUI zweimal das Feld "DAT" aussuchen, einmal die Gruppierung wählen und einmal die Anzahl.

Gruß

Robert

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 15:29
von kernm23
Ich habe versucht die Abfrage in der Entwurfsansicht zu erstellen. In der Zeile Funktion kann ich keine Funktion einstellen (hier steht nur "keine Funktion"). Kann ich das irgendwie aktivieren?

Ich habe es auch direkt in der SQL-Ansicht versucht. Folgende Fehlermeldung: Abfrage zu komplex. Nur "Anzahl(*)" wird unterstützt.

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 16:28
von RobertG
Hallo kernm23,

welche Datenbank nutzt Du denn? Das sieht mir danach aus, als versuchtest Du auf so etwas wie eine Calc-Tabelle zuzugreifen. Da stehen dann natürlich nur sehr beschränkt Funktionen zur Verfügung.

So lange in einem Thread nichts anderes erwähnt wird gehen hier viele LeserInnen erst einmal davon aus, dass Du die interne HSQLDB-Datenbank nutzt. Das scheint so jedenfalls nicht der Fall zu sein.

Gruß

Robert

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 20:05
von kernm23
Ich nutze eine dBase-Datenbank.
Geht das hier nicht?


Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 21:26
von RobertG
Hallo kernm23,

die über die GUI zur Verfügung stehenden Befehle hängen mit dem Treiber und der dahinterliegenden Datenbank zusammen. Es kann sein, dass über die Ausführung eines direkten SQL-Befehls (von der Abfrage-GUI auf die SQL-Darstellung wechseln und das SQL-Symbol drücken) Funktionen erreichbar sind, die die GUI nicht kennt.

Was mit dem internen Treiber für dBase möglich ist habe ich nicht weiter getestet. So weit, wie es bei dBase Plus geht, geht es vermutlich bei dem internen Treiber nicht. Dort steht dann nämlich auch die Gruppierung und die Anzahl zur Verfügung.

Gruß

Robert

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Do, 28.06.2018 21:42
von kernm23
Nach der direkten sql-Eingabe wird mir zwar die Funktion in der Entwurfsansicht angezeigt, das Ausführen der Abfrage führt trotzdem zur og. Fehlermeldung.

Ich verwende eine oo-calc-Tabelle, die ich als dBase-Tabelle abgespeichert habe als Datenbanktabelle.
Kann ich hiervon irgendwie unproblematisch zu dbase plus wechseln, damit mir die sql-Funktionen zur Verfügung stehen?


Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Fr, 29.06.2018 08:36
von RobertG
Hallo kernm23,

eine andere Form von dBase wird Dir nicht helfen, weil der Treiber das vermutlich nicht zur Verfügung stellt, was Du suchst.

Wenn Du die Tabelle sowieso durch Abspeicherung aus einer Calc-Tabelle gewinnst, dann kannst Du doch auch die Tabelle direkt nach Base importieren als HSQLDB-Tabelle. Eine leere interne Datenbank erstellen, den Inhalt in Calc in die Zwischenlage kopieren. Den Inhalt in Base in den Tabellencontainrer einfügen. Dort dem Assistenten folgen ...

Wenn Du häufiger die Inhalte aus Calc exportieren musst kann es auch sein, dass eine *.csv-Tabelle hier die bessere Wahl ist. Die interne HSQLDB kann auch mit *.csv-Tabellen arbeiten. Hier ist allerdings einige Vorarbeit erforderlich. Wie weit Du auf Funktionen der HSQLDB an dieser Stelle verzeichten musst habe ich nicht getestet. Details dazu stehen im Handbuch.

Gruß

Robert

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Fr, 29.06.2018 09:04
von kernm23
Ich habe bereits versucht die interne Open Office Base Datenbank zu verwenden.
Die Datenbank wird jedoch von mehreren Usern gleichzeitig verwendet. Mit der internen Datenbank hatte ich dabei ständig Probleme und bin daher wieder zurück zu dBase gewechselt.
Ich muss in der Datenbank regelmäßig Maßen Änderungen durchführen.
Dies geht schnell und einfach, wenn ich die DBF-Datei direkt mit Calc öffne u. bearbeite.

Re: Abfrage mit Ausgabe der Anzahl der Datensätze mit bestimmtem Datum

Verfasst: Fr, 29.06.2018 09:59
von RobertG
Hallo kernm23,

der Export in *.dbf wird Dir so nichts bringen. Du kannst doch genau das Gleiche erreichen, wenn Du eine Calc-Tabelle direkt bearbeitest.

Wenn ihr wirklich mit mehreren Leuten an einer Datenbank arbeitet, dann kommt ihr sinnvollerweise nicht an einer Serverdatenbank vorbei. Die regelt klar, wer wann worauf Zugriff hat und dass nicht eine Person gerade etwas ändert, das eine andere Person auch ändert.

Das, was Du abfragen willst, kannst Du doch besser direkt in Calc abfragen:

Code: Alles auswählen

=ZÄHLENWENN(A$2:A$7;A2)
In der Spalte A stehen die Datumseingaben bis Zeile 7.
Mit dieser Funktion wird abgefragt, wie häufig das Datum in Zeile 2 dort insgesamt vorkommt.

Gruß

Robert