PDA

Vollständige Version anzeigen : verschiedene Werte in einer Spalte gruppieren


Volker S.
04.05.2011, 07:28
Hallo,
in einer Spalte werden verschiedene Ergebnisse für Ausschusskriterien eingetragen (0 - Schlecht, 1 - Gut, 3 - Folgefehler).
Nun möchte ich die Anzahl der einzelnen Werte per Abfrage gruppieren um als Diagramm ausgeben zu können.

So z.B:


Vorher:
| Ergebnis |
1
1
1
0
0
3
...

Nachher:

| Gut | Schlecht | Folgefehler | Gesamt |
----------------------------------------
25 5 5 35



Mir erscheint es eigentlich zu banal, aber ich steh voll auf dem Schlauch...
:sos:

zra8886
04.05.2011, 08:11
Hallo Volker,

ich habe zwar nur Access 2003 und kenne deine zusätzlichen Spalten/Felder/Eintragungen nicht, komme damit auf das gewünschte Ergebnis:

TRANSFORM Count(Testtabelle.ID) AS AnzahlvonID
SELECT Testtabelle.Bemerkung, Count(Testtabelle.ID) AS [Gesamtsumme von ID]
FROM Testtabelle
GROUP BY Testtabelle.Bemerkung
PIVOT Testtabelle.Beschreibung;


Meine Testtabelle (habe ich mal nach Excel exportiert) sieht so aus:


<b><em>Testtabelle</em></b><table border="1" cellspacing="0" cellpadding="0" style="border-color:#000000; border-width: 1px; font-size:11pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "><colgroup><col style="font-weight:bold; width:40px;" /><col style="width:117px;" /><col style="width:117px;" /><col style="width:117px;" /><col style="width:117px;" /></colgroup><tr style="background-color:#99CCFF; text-align:center; font-weight:bold; "><td>&nbsp;</td><td>A</td><td>B</td><td>C</td><td>D</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">1</td><td style="color:#000000; background-color:#C0C0C0; text-align:center; " >ID</td><td style="color:#000000; background-color:#C0C0C0; text-align:center; " >Beschreibung</td><td style="color:#000000; background-color:#C0C0C0; text-align:center; " >Ergebnis</td><td style="color:#000000; background-color:#C0C0C0; text-align:center; " >Bemerkung</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">2</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >1</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Gut</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >1</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Text</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">3</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >2</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Gut</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >1</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Text</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">4</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >3</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Gut</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >1</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Text</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">5</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >4</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Schlecht</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >0</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Text</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">6</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >5</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Schlecht</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >0</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Text</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">7</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >6</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Folgefehler</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >3</td><td style="color:#000000; background-color:#FFFFFF; text-align:left; " >Text</td></tr></table><br/><table border="1" cellspacing="0" cellpadding="0" style="border-color:#000000; border-width: 1px; font-size:11pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "><tr style="background-color:#FFFF66; text-align:center; font-weight:bold; "><td colspan="7" > Füllfarben und Muster </td></tr><tr valign="top" style="background-color:#FFFF66; text-align:center; font-weight:bold; "><td> Zelle </td><td> Rot </td><td> Grün </td><td> Blau </td><td> Color </td><td> Muster </td><td style="text-align:right" > Farbe </td></tr><tr><td>A1 </td><td style="text-align:right; ">192</td><td style="text-align:right; ">192</td><td style="text-align:right; ">192</td><td style="text-align:right; background-color:#C0C0C0">12632256&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>B1 </td><td style="text-align:right; ">192</td><td style="text-align:right; ">192</td><td style="text-align:right; ">192</td><td style="text-align:right; background-color:#C0C0C0">12632256&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>C1 </td><td style="text-align:right; ">192</td><td style="text-align:right; ">192</td><td style="text-align:right; ">192</td><td style="text-align:right; background-color:#C0C0C0">12632256&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>D1 </td><td style="text-align:right; ">192</td><td style="text-align:right; ">192</td><td style="text-align:right; ">192</td><td style="text-align:right; background-color:#C0C0C0">12632256&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table><b>Zellen mit Füllfarbe automatisch werden nicht dargestellt</b><br/><br/><a href="http://c.excelhost.de/c_beverly/getfile.php?id=122" onclick="window.open(this.href);return false">Tabellendarstellung in Foren Version 5.42</a><br/><br/>

Stellt sich mir noch die Frage, wie du mit deiner Beschreibung auf die nachher Zahlen kommst. Das erschließt sich mir nicht.

mfg
Roland

Volker S.
04.05.2011, 08:42
Hallo Roland,
vielen Dank für deine Hilfe.


Stellt sich mir noch die Frage, wie du mit deiner Beschreibung auf die nachher Zahlen kommst. Das erschließt sich mir nicht.


Genau! Das ist ja das Problem.
Ich möchte eben gerne, dass es dann zu dieser Ausgabe kommt. Ich weiß eben nur nicht wie?
ich brauch praktisch nur eine Zeile mit der Anzahl der verschiedenen Kriterien.

Was ich mir vorstellen könnte, wäre der Umweg über eine temporäre Tabelle, in welche ich die Werte per VBA reinschreibe.
Hmm, werd ich wahrscheinlich auch so lösen, da kann ich dann auch noch Werte aus verschiedenen Tabellen mit aufnehmen.

Bin aber für andere Lösungsvorschläge sehr dankbar!

EarlFred
04.05.2011, 08:47
Hallo Volker,

muss mal SQL üben, daher ein kleiner Versuch von mir (diesmal hoffentlich für die richtige Rubrik ;))

SELECT Tabelle1.StatusText AS Status, Count(Tabelle1.Statustext) AS Anzahl
FROM Tabelle1
GROUP BY Tabelle1.StatusText;

Gruppiert und gezählt wird nach StatusText (Gut, schlecht, Folgefehler..)

Hilft Dir das weiter?

Grüße
EarlFred

zra8886
04.05.2011, 09:06
Hallo Volker

...Ich möchte eben gerne, dass es dann zu dieser Ausgabe kommt. Ich weiß eben nur nicht wie?
ich brauch praktisch nur eine Zeile mit der Anzahl der verschiedenen Kriterien.
.

siehe #3

...Was ich mir vorstellen könnte, wäre der Umweg über eine temporäre Tabelle, in welche ich die Werte per VBA reinschreibe.
Hmm, werd ich wahrscheinlich auch so lösen, da kann ich dann auch noch Werte aus verschiedenen Tabellen mit aufnehmen.
...

VBA braucht es da nicht. Was du benötigst ist lediglich eine Abfragetabelle.

Zusätzlich zu deinen vorhandenen Feldern benötigst du folgende Zusatzfelder:

Beschreibung: Wenn([Ergebnis]=1;"Gut";Wenn([Ergebnis]=0;"Schlecht";Wenn([Ergebnis]=3;"Folgefehler";"")))

Bemerkung: "Text"

Auf diese Abfrage baust du dir wie in #3 beschrieben die Kreuztabelle auf.

mfg
Roland

Toast78
04.05.2011, 09:07
Hallo Roland,
Genau! Das ist ja das Problem.
Ich möchte eben gerne, dass es dann zu dieser Ausgabe kommt. Ich weiß eben nur nicht wie?Auf grund der mangelnden Daten kann man nicht nachvollziehen, was z.B. der Wert 25 für "Gut" zu bedeuten hat. Das solltest du erklären.

Ich denke, du solltest dir mal die Kreuztabellen-Abfragen auch ansehen.

Volker S.
04.05.2011, 09:15
Hallo EarlFred,
ich hab mich so dermaßen verrannt, dass ich das einfachste nicht mehr erkannt habe.

Du bist halt der Earl!
;)

Danke!

Volker S.
04.05.2011, 09:21
Hallo Roland und Toast78,
tut mir leid, wenn ich mich etwas umständlich ausgedrückt habe. Es ging mir lediglich um die Anzahl der einzelnen Werte für Gut, Schlecht, etc.

Ich hab echt den Wald vor lauter Bäumen nicht mehr gesehen.
:stupid:

Ich glaub, ich brauch Urlaub.

Danke für eure Hilfe.

zra8886
04.05.2011, 09:48
Hallo Roland und Toast78,
tut mir leid, wenn ich mich etwas umständlich ausgedrückt habe. Es ging mir lediglich um die Anzahl der einzelnen Werte für Gut, Schlecht, etc.

....

Hallo Volker,

das stimmt. Recht umständlich.

Dein Abfrageergebniss wolltest du in der waagerechten haben und nicht in der senkrechten.

Da ich jetzt deine ursprüngliche Forderung umgesetzt habe poste ich das jetzt trotzdem noch. Vielleicht kann es ja mal jemand anders noch gebrauchen.

Datentabelle:
<b><em>Testtabelle</em></b><table border="1" cellspacing="0" cellpadding="0" style="border-color:#000000; border-width: 1px; font-size:11pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "><colgroup><col style="font-weight:bold; width:40px;" /><col style="width:117px;" /><col style="width:117px;" /></colgroup><tr style="background-color:#99CCFF; text-align:center; font-weight:bold; "><td>&nbsp;</td><td>A</td><td>B</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">1</td><td style="color:#000000; background-color:#C0C0C0; text-align:center; " >ID</td><td style="color:#000000; background-color:#C0C0C0; text-align:center; " >Ergebnis</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">2</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >1</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >1</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">3</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >2</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >1</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">4</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >3</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >1</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">5</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >4</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >0</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">6</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >5</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >0</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">7</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >6</td><td style="color:#000000; background-color:#FFFFFF; text-align:right; " >3</td></tr></table><br/><a href="http://c.excelhost.de/c_beverly/getfile.php?id=122" onclick="window.open(this.href);return false">Tabellendarstellung in Foren Version 5.42</a><br/><br/>

Aufarbeitung der Daten mit der Abfrage:
SELECT Testtabelle.Ergebnis, IIf([Ergebnis]=1,"Gut",IIf([Ergebnis]=0,"Schlecht",IIf([Ergebnis]=3,"Folgefehler",""))) AS Beschreibung, "Text" AS Bemerkung
FROM Testtabelle;


Darstellung des Ergebnisses in der waagerechten mit der Abfrage:
TRANSFORM Count(Testabfrage.Ergebnis) AS AnzahlvonErgebnis
SELECT Testabfrage.Bemerkung, Count(Testabfrage.Ergebnis) AS Gesamt
FROM Testabfrage
GROUP BY Testabfrage.Bemerkung
PIVOT Testabfrage.Beschreibung;

Schönen Tag noch.

mfg
Roland

Volker S.
04.05.2011, 12:43
Hallo Roland,
das ist natürlich perfekt.

Ich danke dir!
:hands: