Grundlagen - Rechnen mit Daten aus der Datenbank

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Grundlagen - Rechnen mit Daten aus der Datenbank

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von RobertG » Mi, 19.12.2012 18:47

Hallo Ex,

eigentlich müsste es immer funktionieren, mit beliebig vielen GROUP-BY-Bedingungen zu arbeiten. Kannst Du einmal so eine fehlerhafte Abfrage (mit Fehlermeldung) posten?

Gruß

Robert

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von eXTasY » Mi, 19.12.2012 18:11

Hi,

doch die helfen mir sehr =)

Aber die Erfahrung der Mitglieder hier spiegelt mir das nicht.
Ich bekomme immer einen Fehler, wenn ich zwei Gruppierungen mache :(

MfG
eX

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von juetho » Mi, 19.12.2012 09:16

eXTasY hat geschrieben:Aber kann ich das ganze auch zwei mal Gruppieren?
Also zB nach Artikelnr und Auftragsnummer?
Grundsätzlich ja, siehe Erläuterungen zu GROUP BY. Es ist nur die Frage, inwieweit Zwischensummen zur Verfügung stehen.

Du hast doch verschiedene Links zur SQL-Syntax bekommen. Ist es dir nicht möglich, dort nachzuschlagen? Du musst doch sowieso solche Erläuterungen durchlesen, um sie zu verstehen. Dann sollte die eigenständige Suche einfacher und schneller zum Ziel führen als eine neue bzw. ergänzende Frage im Forum.

Jürgen

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von eXTasY » Di, 18.12.2012 22:54

hi juetho,

danke schonmal

ich habe zB fünf zeilen mit 2 verschiedenen Artikelnummern
nun wollte ich die einzelnen zellen von fc1 bis fc10 zellenweise zusammenzählen
so dass ich am ende im grund wie die Tabelle artikelauflistung habe, nur eben mit alles werten der fc dabei

EDIT:
Ok ich glaube es funkionert.
Aber kann ich das ganze auch zwei mal Gruppieren?
Also zB nach Artikelnr und Auftragsnummer?

MfG
eX

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von juetho » Di, 18.12.2012 10:44

eXTasY hat geschrieben: eine übersicht der ganzen befehle und was sie zu bedeuten haben etc pp?
Handbuch Seite 270 ff. (wie gesagt, ohne die Spaltenfunktionen). In einer anderen Diskussion hat Robert auf die SQL-Syntax von HSQL verwiesen; im Abschnitt zu SELECT gibt es winzige Hinweise auf die vorhandenen Spaltenfunktionen. Mehr dazu steht in der Einführung in SQL.
Nun ist meine Frage noch ob ich bei gleicher Auftragsnummer die Zeilen zusammenzählen kann bzw wie?
Du kannst natürlich nicht "Zeilen zusammenzählen", sondern nur Zahlen; einzelne Zahlen sind Werte jeweils innerhalb einer Spalte und einer Zeile. Welche Überraschung: die dazugehörige Funktion heißt SUM. Dann ist sinnvollerweise mit GROUP BY (und nicht mit DISTINCT) zu arbeiten.

Gruß Jürgen

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von eXTasY » Mo, 17.12.2012 20:53

hi

danke =)

ich muss mal kurz was doofes fragen tut mir leid, aber gibt es irgendwo eine übersicht der ganzen befehle und was sie zu bedeuten haben etc pp?

ich hoffe dass ich langsam durch die Berechnungen durchblicke, denn ich hab noch eine grafische Auswertung vor und da wären dann meine nächsten fragen :D

EDIT:
Also das mit den Mittelwerten hab ich nun geschafft! =)
Nun ist meine Frage noch ob ich bei gleicher Auftragsnummer die Zeilen zusammenzählen kann bzw wie?

MfG
eX

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von RobertG » Mo, 17.12.2012 20:12

Hallo Ex,
eXTasY hat geschrieben: Gibt es auch eine wenn/dann Funktion wie im excel?
Eine Datenbank ist natürlich keine Tabellenkalkulation. Einige Funktionen sind dennoch verfügbar. Schau einfach einmal in diesem Forum den Thread, der gerade parallel läuft:
viewtopic.php?f=8&t=60641#p225198

Gruß

Robert

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von eXTasY » Mo, 17.12.2012 19:09

Hi,

ich wird das mal ausprobieren, aber irgendwie ist das voll spanisch für mich. :(

Gibt es auch eine wenn/dann Funktion wie im excel`?

MFG
eX

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von DPunch » Sa, 15.12.2012 18:04

Servus
RobertG hat geschrieben:Der Code für den Durchschnitt muss noch erweitert werden, da sonst nur auf ganze Zahlen ausgerechnet wird. schließlich sind die Ausgangsfelder Ganzzahlfelder
Diesen Umweg brauchst Du gar nicht zu nehmen, es reicht, eine der Zahlen als Double zu verwenden. Am übersichtlichsten ist es, dies beim Divisor zu tun.

Code: Alles auswählen

SELECT ( "FC 01" + "FC 02" + "FC 03" + "FC 04" + "FC 05" + "FC 06" + "FC 07" + "FC 08" + "FC 09" + "FC 10" ) / 10.0 AS "Durchschnitt" FROM "Speicherung"
Wo genau Du dies tust, bleibt natürlich ganz Dir überlassen

Code: Alles auswählen

1.0 * ( "FC 01" + "FC 02" + "FC 03" + "FC 04" + "FC 05" + "FC 06" + "FC 07" + "FC 08" + "FC 09" + "FC 10" ) / 10
erfüllt seinen Zweck genauso wie

Code: Alles auswählen

( "FC 01" + "FC 02" + "FC 03" + "FC 04" + "FC 05" + "FC 06" + "FC 07" + "FC 08" + "FC 09" + "FC 10"  + 0.0) / 10
etcetc.

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von RobertG » Sa, 15.12.2012 11:56

Zwei Zusätze:
Der Code für den Durchschnitt muss noch erweitert werden, da sonst nur auf ganze Zahlen ausgerechnet wird. schließlich sind die Ausgangsfelder Ganzzahlfelder:

Code: Alles auswählen

SELECT CAST( ( "FC 01" + "FC 02" + "FC 03" + "FC 04" + "FC 05" + "FC 06" + "FC 07" + "FC 08" + "FC 09" + "FC 10" ) AS DECIMAL ( 5 , 1 ) ) / 10 AS "Durchschnitt" FROM "Speicherung"
Aus den Ganzzahlen werden so Dezimalzahlen mit insgesamt 5 Stelleneinheiten, davon 1 Nachkommastelle.
Die HSQLDB kennt zwar noch den Begriff "CONVERT" - der wird aber von der GUI von Base nicht verstanden.
Beim Durchschnitt für die Spalten haben wir sofort wieder einen Bug aufgetan. Die GUI setzt dort den Begriff "INTERSECTION" und die HSQLDB weigert sich, damit zu arbeiten. Wird händisch stattdessen "AVG" eingegeben, so funktionierts.
Ergänzung: Anscheinend gibt es einen Unterschied zwischen INTERSECTION und AVG, den ich nicht so recht durchschaue. DIe GUI bietet nämlich auch neben dem Durchschnitt den Mittelwert an. Und über diese Auswahl wird dann AVG gewählt. Auch bei AVG muss übrigens eine Umwandlung der Datenformate erstellt werden, damit die Anzeige halbwegs genau ist. Ebenfalls also CAST (... AS DECIMAL(5,1)) oder eben mehr Stellen.

Gruß

Robert
Dateianhänge
Auswertung Fehlersammelkarte KTL HBN.odb
Mit Durchschnittsabfragen
(42.21 KiB) 130-mal heruntergeladen

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von juetho » Fr, 14.12.2012 17:38

RobertG hat geschrieben:die Spaltenfunktionen sind ja für jeden sichtbar auszuwählen über die grafische Benutzeroberfläche im Design-Modus. Mal sehen, ob wir die noch deutlicher im Base-Handbuch einbauen.
Da kann man die Schwerpunkte sehen: Ich kümmere mich weniger um den Design-Modus als vielmehr um "Entwicklung per Code". :D Im Handbuch fehlt auf Seite 270 ff. einfach eine Liste der Spaltenfunktionen.
eXTasY hat geschrieben:Das schaut nämlich allein von einem Durchschnitt einer Zeile scho wenig kompliziert aus.
Das sah in Roberts Beispiel nur deshalb so "komisch" aus, weil dafür eben die Werte von zehn Spalten addiert werden sollten. AVG bezieht sich auf alle Werte einer Spalte und ist (siehe den von mir genannten Link mit Beispiel) ganz einfach zu benutzen.

Gruß Jürgen

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von eXTasY » Fr, 14.12.2012 17:27

ähm ok ^^

kann mir mal jemand eine Beispiel-DB hochladen damit ich das sehen kann?

Das schaut nämlich allein von einem Durchschnitt einer Zeile scho wenig kompliziert aus.
Und wenn ich pro Artikel Spaltenmäßig den MIttelwert haben möchte?

MfG
eX

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von RobertG » Fr, 14.12.2012 17:16

Hallo Jürgen,

die Spaltenfunktionen sind ja für jeden sichtbar auszuwählen über die grafische Benutzeroberfläche im Design-Modus. Mal sehen, ob wir die noch deutlicher im Base-Handbuch einbauen.

Gruß

Robert

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von juetho » Fr, 14.12.2012 16:58

Nur der Vollständigkeit halber weise ich auf die Spaltenfunktion AVG hin. (Sie wird im Handbuch nicht erwähnt, ist aber eine SQL-Standardfunktion und sollte deshalb ebenfalls vorhanden sein.) Die liefert den Durchschnitt aller Werte innerhalb einer Spalte. Jürgen

Re: Grundlagen - Rechnen mit Daten aus der Datenbank

von RobertG » Fr, 14.12.2012 16:46

Hallo eX,
eXTasY hat geschrieben: Wie kann ich nun mit den Daten in der Tabelle "Speicherung" rechnen?
Also Durchschnitt der einzelnen Fehler pro Artikelnr etc pp?
Du erstellst eine Abfrage, schaltest dann die Design-Ansicht aus und kannst mit den Feldern Rechnen oder Funktionen von der HSQLDB nutzen. Siehe dazu auch das Base-Handbuch.
Beispiel:

Code: Alles auswählen

SELECT ("FC 01"+"FC 02"+"FC 03"+"FC 04"+"FC 05"+"FC 06"+"FC 07"+"FC 08"+"FC 09"+"FC 10")/10 AS "Durchschnitt" FROM "Speicherung"
Damit berechnest Du den Durchschnitt aller Einträge. Funktioniert in dieser Einfachheit aber nur korrekt, wenn tatsächlich in alle Felder etwas eingetragen wurde.

Gruß

Robert

Nach oben