etops Geschrieben 20. August 2003 Geschrieben 20. August 2003 Hallo, ich habe ein Problem mit SELECT COUNT(*) (unter Access97): ich muß aus verschiedenen Tabellen einer Access-DB jeweils die Anzahl der Datensätze auslesen. Mit SELECT COUNT(*) funktioniert das soweit auch ganz gut. Allerdings hätte ich gerne eine neue Tabelle, in der die entsprechenden Werte eingetragen sind. Leider scheint es aber nicht zu gehen, daß man mehrere Abfragen z.B. über UNION verknüpft: die Zahlen erscheinen nur in einer neuen Zeile der gleichen Spalte, aber eben nicht (so, wie ich es gern hätte) in einer neuen Spalte. Mein Problem ist nämlich, daß ich die Zahlen nicht mehr zuordnen kann, wenn immer nur neue Zeilen angelegt werden - daher wollte ich mit SELECT COUNT(*) AS Blabla vorgehen. Weiß jemand Bescheid, wie das umsetzbar ist? Wäre super Danke+Gruß -etops-
Peregrin Geschrieben 20. August 2003 Geschrieben 20. August 2003 hi, ich hoffe, dich richtig verstanden zu haben: du möchtest einen (oder mehrere) wert(e) und die anzahl datensätze dazu auslesen?select spalte1, spalte2, count(*) from tabelle group by spalte1, spalte2sollte das ergebnis bringen. hth
etops Geschrieben 20. August 2003 Autor Geschrieben 20. August 2003 Nein, geht leider nicht. Soll nämlich die Datensätze aus n Tabellen zählen und dann jeweils in einer neuen Spalte ausgeben. Trotzdem erstmal danke!
jomama Geschrieben 21. August 2003 Geschrieben 21. August 2003 Postet doch bitte immer erst den Abfrage-Code, wie er jetzt ist. Dann muss man nicht immer die Kristallkugel anwerfen. Schlimm. Hast du es schon mal mit AS probiert? SELECT COUNT(*) AS Blablaspalte From Blablatabelle SELECT COUNT(*) AS Gagaspalte From Gagatabelle
Claus Gronemeier Geschrieben 21. August 2003 Geschrieben 21. August 2003 Guten Morgen, @etops schau mal bitte hier ... (unter "Aggregatfunktionen" oder "Group-by-Funktionen") Theoretisch sollte es so gehen: mysql> SELECT x1 COUNT(*) AS x2 -> FROM x3, x4 -> WHERE x5 = x6 -> GROUP BY x7 [/PHP] Das ist jetzt reines SQL, ich kenne mich mit Access leider nicht aus, sonst würde ich es dir kurz machen. Beste Grüße Claus
Claus Gronemeier Geschrieben 21. August 2003 Geschrieben 21. August 2003 Geht es nicht konventionell? nimm die einzelnen Ergebnisse und speicher sie in eine neue Tabelle. dieser gibst du dann für jeden Wert, welchen du haben willst, eine neue Spalte. also für jedes Count(*)-Resultat machst du eine Variable und speicherst die sogleich in die neue Datenbank. (Kannst ja auch gern ne WHILE-Schleife drum basteln... ;-)) Danach einfach: mysql> SELECT * FROM x8 somit müsstest du doch so viele Spalten bekommen, wie du benötigst, oder? [edit]mit PHP wäre das kein Problem...(habe es mit VBA aber noch nie gemacht ;-))[/edit]
Claus Gronemeier Geschrieben 21. August 2003 Geschrieben 21. August 2003 Nachtrag: So funktioniert es unter Oracle: SELECT anz1, anz2, anz3 FROM (SELECT COUNT (*) AS anz1 FROM dual), (SELECT COUNT (*) AS anz2 FROM dual), (SELECT COUNT (*) AS anz3 FROM dual) [/PHP] dual ist in diesem Fall nur ein Platzhalter für den Tabellennamen. Das Beispiel funktionierte in Access97 jedoch nicht. Evtl. gibt es da spezifische Unterschiede. Microsoft eben... ;-) Evtl. informierst du dich mal in der Hilfe unter dem Stichwort: "Kreuztabellen" Schönen Gruß Claus
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden