Willkommen im TP-Hilfe-Forum! Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst.
Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team.
ich sitze hier vor einer Access-Datenban eines Freundes, der bei mir um Hilfe gerufen hat. Folgendes Problem:
In einer Tabelle befinden sich mehrere Datensätze. Jetzt soll über alle Datensätze und vier Spalten der Mittelwert errechnet werden, vorher müssen noch eingetragene Nullen gefiltert werden. Die erste Frage, die sich mir stellt:
Kann man eine Summe auch von mehreren Spalten berechnen und wenn ja, wie?
Sum(Spalte1, Spalte2) und Sum(Sum(Spalte1), Sum(Spalte2)) waren meine ersten Ansätze, aber das lässt ja SQL leider nicht zu
SELECT * FROM tabellenname WHERE (feld1 + feld2 + feld3 + feld 4) = 5
ist meiner meinung nach durchaus valieder mysql-syntax, das dürfte eigentlich auch auf das normale sql zutreffen. wenn nicht empfehle ich dir einen blick ins handbuch unter dem thema "SELECT, INSERT, UPDATE Syntax"
um in access spalten zu summiern (oder sonst irgend eine gruppierungsfunktion) tippst du auf das summensymbol im menü.
dann kannst du in den selektierten spalten die jeweilige funktion in der spalte gruppieren auswählen. mittelwert ist avg()
wählst du mit der rechten maustaste eine freie spalte, dann 'Aufbauen...' dort kannst du dann berechnungen über deine felder in der datenbank anlegen.
das wars mal ganz grob, hoffe, ich hab dir ein paar tipps zum weitermachen gegeben.
__________________
Gehelft? Hier kannst du dich bedanken.
natürlich kannst du in access auch sql direkt eingeben.
machst du eine neue abfrage in der entwurfansicht auf.
dann klickst du das aufpoppende fenster mit den tabellen weg.
dann hast du unter (geografisch gesehen) dem menüpunkt 'Datei' ein dropdownfeld in dem
entwurfsansicht
datenblattansicht
sql-ansicht
zum auswählen sind.
in sql-ansicht kannst dann direkt sql-befehle eingeben und sie dir in der datenblattansicht anschauen.
access hat zwar eine etwas 'eigenartige' ansicht was sql ist, aber mit standard ansi solltest eigentlich auch durchkommen.
Es würde aber zu weit führen, hier einen Access grundkurs zu veranstalten.
Gugg dich mal im Web um. Da gibts sicher gute Seiten, die sich mit Access im Detail beschäftigen.
__________________
Gehelft? Hier kannst du dich bedanken.
Vielleicht kannst Du erst ne SUM Query abschicken, bei der Du die Summen der Felder als Feld Summen ausgebenlässt und dann per AVG das Summen Feld abfragst.
__________________
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
im moment finde ich einfach keinen sinnvollen ansatz. die gesamtsumme habe ich in der zwischenzeit, aber danach komme ich nicht weiter.
hier noch mal das problem: es liegen verschiedene werte in mehreren datensätzen vor. zur veranschaulichung: beispieltabelle
aus diesen (allen!) werten soll nun der mittelwert gebildet werden. das problem in meinen augen: die nullen bedeuten keine angabe, sollen also nicht in die mittelwertberechnung eingehen. und das ganze (wenn das geht) mit einer sql-abfrage.
Da du aber NULLer ausschliessen willst und AVG über die gesammte Tabelle haben willst, ist es nicht möglich. Du kommst um eine Art Programm nicht aus, da du während des Querys nicht die Anzahl der Zeilen hast... Wenn du die NULLer ausschliessen könntest würde es wie oben beschrieben gehen, nur halt mit AVG. Aber sonst...
wie schon gesagt... fast unmöglich... zumindest um diese Uhrzeit
gehen tuts schon. aber nicht einfach und schon gar nicht mit einer abfrage allein.
du gestaltest dir für deine tabelle pro spalte ein subselect in dem du die nullen filterst: (bsp für tabelle test, feld wert1 - access syntax)
SELECT [test].[wert1]
FROM test
WHERE ((([test].[wert1])<>0));
das machst du für alle werte und eine für die summe der werte:
SELECT [test]![wert1]+[test]![wert2]+[test]![wert3]+[test]![wert4] AS summe
FROM test
WHERE ((([test]![wert1]+[test]![wert2]+[test]![wert3]+[test]![wert4])<>0));
jetzt solltest du 5 abfragen haben, die dir eine unterschiedliche anzahl von rows liefert (eben halt ohne nullen)
jetzt erstellst du eine weitere abfrage, in die du dir dann alle unterabfragen selektierst und über das summensymbol den mittelwert bestimmst.
zur Veranschaulichung hab ich dir die access db mitgezipt.
Ich bin mir sicher, dass es schönere Möglichkeiten gibt, deine Aufgabe zu lösen, aber zu dem fehlt mir die access erfahrung.
__________________
Gehelft? Hier kannst du dich bedanken.