Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 18.01.2003, 18:23   #1
TP-Senior
 
Registriert seit: Nov 2002
Ort: hauptstadt
lutin macht alles soweit korrekt
Question

SQL - Summe über mehrere Spalten


Hallo,

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

Bin für jede Hilfe dankbar...
__________________
Meine Spielwiese
lutin ist offline   Mit Zitat antworten


Alt 18.01.2003, 18:29   #2
TP-Veteran
 
Benutzerbild von jonemo
 
Registriert seit: Dec 2002
Ort: london
jonemo macht sich hier sehr viel Mühe
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"
__________________
the daily london photo
jonemo ist offline   Mit Zitat antworten
Alt 18.01.2003, 18:40   #3
TP-Senior
 
Registriert seit: Nov 2002
Ort: hauptstadt
lutin macht alles soweit korrekt
so wie ich deinen befehl verstehe, wird als bedingung abgefragt, ob die summe der felder 5 ist.

ich brauche aber die summe der felder, also z.B.
SELECT SUM(feld1, feld2) FROM tabelle

(auch wenn das so nicht geht...)

oder stehe ich jetzt total auf der leitung?
__________________
Meine Spielwiese
lutin ist offline   Mit Zitat antworten
Alt 18.01.2003, 18:48   #4
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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.

mike
mike ist offline   Mit Zitat antworten
Alt 18.01.2003, 20:06   #5
TP-Senior
 
Registriert seit: Nov 2002
Ort: hauptstadt
lutin macht alles soweit korrekt
@longfang: leider kenne ich mich selbst mit der oberfläche von access nicht so gut aus. weißt du, wie man das in SQL abbilden könnte?

trotzdem werde ich mal mit deinen tipps weiterbasteln... danke!
__________________
Meine Spielwiese
lutin ist offline   Mit Zitat antworten
Alt 18.01.2003, 20:25   #6
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
also wie es in Access funktioniert weiss ich auch nicht direkt, aber du kannst die Summierung doch so machen:

SELECT SUM(feld1+feld2+feld3) FROM ....

Wahrscheinlich ist es dann mit dem Mittelwert (AVG) genauso...?

Gruss Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 20.01.2003, 11:16   #7
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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.

mike
mike ist offline   Mit Zitat antworten
Alt 20.01.2003, 11:24   #8
TP-Insider
 
Benutzerbild von freefonzo
 
Registriert seit: May 2002
Ort: Colonia
freefonzo macht alles soweit korrekt
Soweit ich weiss, kann man die AVG Abfrage nur auf ein Feld/Zeile ausführen.
Zitat:
The AVG function is one of the aggregate functions that are used to calculate statistical information for a specified numeric field in a query.

Hier weitere Infos.

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

1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
freefonzo ist offline   Mit Zitat antworten
Alt 21.01.2003, 22:43   #9
TP-Senior
 
Registriert seit: Nov 2002
Ort: hauptstadt
lutin macht alles soweit korrekt
Unhappy

okay, ich passe....


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.

hat vielleicht jemand eine idee???
__________________
Meine Spielwiese
lutin ist offline   Mit Zitat antworten
Alt 22.01.2003, 00:24   #10
TP-Insider
 
Benutzerbild von freefonzo
 
Registriert seit: May 2002
Ort: Colonia
freefonzo macht alles soweit korrekt
Du solltest vielleicht nochmal genauer beschreiben, welche Summe(n) Du erhalten möchtest und welchen Mittelwert(e) du brauchst.

Möchtest Du eine Summe/Zeile oder /Spalte?

Und welchen Average? Zeile oder Spalte?
__________________
Gruss freefonzo

"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill

1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
freefonzo ist offline   Mit Zitat antworten
Alt 22.01.2003, 07:07   #11
TP-Senior
 
Registriert seit: Nov 2002
Ort: hauptstadt
lutin macht alles soweit korrekt
average über zeile UND spalte. das heißt, über alle zahlen, die du da in dem beispiel siehst...
__________________
Meine Spielwiese
lutin ist offline   Mit Zitat antworten
Alt 22.01.2003, 07:24   #12
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Moin !!

Normalerweise würde ich es einfach so machen:
Code:
SELECT SUM((feld1+feld2+feld3+feld4)/4) FROM bla
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

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 22.01.2003, 09:55   #13
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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.
Angehängte Dateien
Dateityp: zip tp.zip (25,7 KB, 64x aufgerufen)
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 22.01.2003, 09:59   #14
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
achja... stimmt man kann ja in Access Abfragen in Abhängigkeit von einer anderen Abfrage fahren...
Stuck Mojo ist offline   Mit Zitat antworten
Alt 22.01.2003, 10:09   #15
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
kann dich trösten, um halb 8 wär ich auch nicht auf sowas gekommen
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
SQL - Summe über mehrere Spalten SQL - Summe über mehrere Spalten
« kurioses ausparsen bei Templ! | ich weiß mir keinen Rat... »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:18 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67