Grundlagen - Rechnen mit Daten aus der Datenbank
Moderator: Moderatoren
Grundlagen - Rechnen mit Daten aus der Datenbank
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
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
Und mit der nächsten Frage beginnt stets ein neues Thema.eXTasY hat geschrieben:Nun hab ich die nächste Frage ^^
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
Hallo eX,
Beispiel:
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
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.eXTasY hat geschrieben: Wie kann ich nun mit den Daten in der Tabelle "Speicherung" rechnen?
Also Durchschnitt der einzelnen Fehler pro Artikelnr etc pp?
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"
Gruß
Robert
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
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
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
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
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
ä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
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
Da kann man die Schwerpunkte sehen: Ich kümmere mich weniger um den Design-Modus als vielmehr um "Entwicklung per Code".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.

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.eXTasY hat geschrieben:Das schaut nämlich allein von einem Durchschnitt einer Zeile scho wenig kompliziert aus.
Gruß Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
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:
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
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"
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
Servus
Wo genau Du dies tust, bleibt natürlich ganz Dir überlassen
erfüllt seinen Zweck genauso wie
etcetc.
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.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
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"
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
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
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
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
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
Hallo Ex,
viewtopic.php?f=8&t=60641#p225198
Gruß
Robert
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:eXTasY hat geschrieben: Gibt es auch eine wenn/dann Funktion wie im excel?
viewtopic.php?f=8&t=60641#p225198
Gruß
Robert
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
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
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
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.eXTasY hat geschrieben: eine übersicht der ganzen befehle und was sie zu bedeuten haben etc pp?
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.Nun ist meine Frage noch ob ich bei gleicher Auftragsnummer die Zeilen zusammenzählen kann bzw wie?
Gruß Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Grundlagen - Rechnen mit Daten aus der Datenbank
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
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
Grundsätzlich ja, siehe Erläuterungen zu GROUP BY. Es ist nur die Frage, inwieweit Zwischensummen zur Verfügung stehen.eXTasY hat geschrieben:Aber kann ich das ganze auch zwei mal Gruppieren?
Also zB nach Artikelnr und Auftragsnummer?
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
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC