Seite 1 von 2
Grundlagen - Rechnen mit Daten aus der Datenbank
Verfasst: Do, 13.12.2012 19:55
von eXTasY
kuhl danke! =)
Glaube ich hab es verstanden.
Nun hab ich die nächste Frage ^^
Wie kann ich nun mit den Daten in der Tabelle "Speicherung" rechnen?
Also Durchschnitt der einzelnen Fehler pro Artikelnr etc pp?
MfG
eX
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
Verfasst: Do, 13.12.2012 20:03
von lorbass
eXTasY hat geschrieben:Nun hab ich die nächste Frage ^^
Und mit der nächsten Frage beginnt stets ein neues Thema.
Beachte bitte die
Allgemeinen Hinweise zur Forumsbenutzung, die du in jeder Kategorie in den Bekanntmachungen findest.
Gruß
lorbass
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
Verfasst: Fr, 14.12.2012 16:46
von RobertG
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
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
Verfasst: Fr, 14.12.2012 16:58
von juetho
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
Verfasst: Fr, 14.12.2012 17:16
von RobertG
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
Verfasst: Fr, 14.12.2012 17:27
von eXTasY
ä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
Verfasst: Fr, 14.12.2012 17:38
von juetho
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".

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
Verfasst: Sa, 15.12.2012 11:56
von RobertG
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
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
Verfasst: Sa, 15.12.2012 18:04
von DPunch
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
Verfasst: Mo, 17.12.2012 19:09
von eXTasY
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
Verfasst: Mo, 17.12.2012 20:12
von RobertG
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
Verfasst: Mo, 17.12.2012 20:53
von eXTasY
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
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
Verfasst: Di, 18.12.2012 10:44
von juetho
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
Verfasst: Di, 18.12.2012 22:54
von eXTasY
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
Verfasst: Mi, 19.12.2012 09:16
von juetho
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