php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.10.2006, 14:56  
Neuer Benutzer
 
Registriert seit: 20.10.2006
Beiträge: 2
plastic
Standard Count über mehrere Tabellenspalten

Hallo zusammen,

ich habe ein Problem mit der Count Funktion.
Ich habe eine Tabelle mit Umfrageergebnissen. Pro Frage der Umfrage existiert eine Spalte. Jede Reihe beinhaltet Schulnoten (1-6) für jede Frage.

Code:
| konto_eroeffnet | konto_situation |....
---------------------------------------------
|          6      |              3  |
--------------------------------------------
|          1      |              2  |
Was ich nun aus der Tabelle ziehen möchte ist folgende Info:

Code:
Note  | konto_eroeffnet | konto_situation
--------------------------------------------------
1      |      1456       |      899
2      |      956        |    523

....
Ich möchte also sehen, wie oft welche Note pro Frage vergeben wurde.
Das wollte ich mit folgendem SQL Statement tun:

Code:
SELECT konto_eroeffnet as Noten, count( konto_eroeffnet) , count( konto_situation )
FROM `test`
GROUP BY Noten
Das Problem ist folgendes:
als Ergebnis erhalte ich nun in allen Spalten die ich zählen lasse das Ergebnis der Spalte nach der die Zählung gruppiert wird. Gibt es irgendeine Möglichkeit, dass ich die Zählergebnisse für jede Spalte erhalte ohne pro Spalte ein Select ausführen zu müssen?

Danke fürs lesen und schonmal danke für eventuelle Antworten!
plastic ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.10.2006, 17:11  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Dein Tabellenlayout ist für solch eine Abfrage nicht gerade geeignet
Code:
SELECT '1', SUM(IF(notea=1, 1, 0)), SUM(IF(noteb=1, 1, 0))
FROM tabelle
UNION
SELECT '2', SUM(IF(notea=2, 1, 0)), SUM(IF(noteb=2, 1, 0))
FROM tabelle
UNION
SELECT '3', SUM(IF(notea=3, 1, 0)), SUM(IF(noteb=3, 1, 0))
FROM tabelle
UNION
SELECT '4', SUM(IF(notea=4, 1, 0)), SUM(IF(noteb=4, 1, 0))
FROM tabelle
UNION
SELECT '5', SUM(IF(notea=5, 1, 0)), SUM(IF(noteb=5, 1, 0))
FROM tabelle
UNION
SELECT '6', SUM(IF(notea=6, 1, 0)), SUM(IF(noteb=6, 1, 0))
FROM tabelle
DiBo33 ist offline   Mit Zitat antworten
Alt 20.10.2006, 17:37  
Neuer Benutzer
 
Registriert seit: 20.10.2006
Beiträge: 2
plastic
Standard

Zitat:
Zitat von DiBo33
Dein Tabellenlayout ist für solch eine Abfrage nicht gerade geeignet
Hallo,
erstmal Danke für Deinen Tip. Das werde ich ausprobieren.
Nun zum Design. Leider kann ich das Grundlegende Tabellenlayout der Anwendung nicht ändern. Allerdings sagst Du, dass Design wäre so nicht optimal. Leider habe ich von DB-Design nicht allzuviel Ahnung, und würde eigentlich davon ausgehen das, wenn man eine Spalte für die Frage hat, wobei die Frage nur Zahlen von 1-6 annehmen kann, das soweit ok wäre vom Design her. Allerings scheint es da ja bessere Ansätze zu geben, es wäre super wenn mir da jemand ein paar Tipps geben könnte.
plastic ist offline   Mit Zitat antworten
Alt 20.10.2006, 17:52  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Dein Stichwort heisst "Normalform".

In deinem Fall würdest du 2 Tabellen erstellen

Code:
Tabelle fragen
ID
Frage

Tabelle noten
ID
fragen_id
note
damit kannst du dann über Join und Gruppierung die Auswertung gestalten.
DiBo33 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mit count ein count zählen? ph!l Datenbanken 2 16.10.2007 16:21
SQL - ein select count - wahrscheinlich micbur Datenbanken 4 22.11.2006 23:20
problem beim mehrfachen joinen einer tabelle und count() PHS Datenbanken 3 03.08.2006 16:49
"Column count doesn't match value count at row 1" möchtegernchegga Datenbanken 3 05.03.2006 16:07
UPDATE count nach Link Aufruf ? PHP Tipps 2006 9 22.01.2006 14:53
MySQL error: Column count doesn't match value count at row 1 atom-dragon PHP Tipps 2005-2 4 21.07.2005 01:38
PEAR::DB LimitQuery was ist Count? PHP Tipps 2005-2 3 06.06.2005 18:02
count "eingränzen" Heart Datenbanken 11 04.04.2005 20:52
mehrere COUNT() auf selbe Tabelle und »can't reopen table« tapferesschneiderlein Datenbanken 3 04.04.2005 13:51
Crosstable SELECT und COUNT() fantast Datenbanken 2 27.01.2005 15:35
[Erledigt] MySQL meldet Column count doesn't match value count at row Datenbanken 4 21.10.2004 10:45
Logfile auswerten/ Problem mit DISTINCT und count und co... supertramp Datenbanken 4 21.09.2004 01:39
[Erledigt] COUNT() Problematik... Datenbanken 2 20.08.2004 13:48
[Erledigt] MYSQL Count problem Datenbanken 1 02.08.2004 19:38
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/datenbanken/42586-count-ueber-mehrere-tabellenspalten.html, sql count mehrere spalten, sql count union, mysql sum if, sql count distinct mehrere spalten, sql count über mehrere spalten, count sql mehrere spalten, select count über mehrere spalten, mysql count union, sql count ergebnisse in einer zeile, count distinct über mehrere spalten, mysql count mehrere spalten, count sql union, mysql summe mehrerer spalten, column zählen sql, google tabelle countif, mehrere spalten sumif, php count () nur zahlen von 1 bis 6, count distinct mehrere spalten, mysql sum spalten

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.