Willkommen im PC-Welt-Forum
Liebe Leser,
Wenn dies Ihr erster Besuch hier ist, lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Sie müssen sich vermutlich registrieren, bevor Sie Beiträge verfassen können. Klicken Sie rechts auf 'Jetzt registrieren.', um den Registrierungsprozess zu starten.
Wenn dies Ihr erster Besuch hier ist, lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Sie müssen sich vermutlich registrieren, bevor Sie Beiträge verfassen können. Klicken Sie rechts auf 'Jetzt registrieren.', um den Registrierungsprozess zu starten.
Ergebnis 1 bis 9 von 10
Thema: SQL-Abfragen in Access
-
25.11.2005, 18:04 #1
ROM
- Registriert seit
- 11.2005
- Beiträge
- 1
SQL-Abfragen in Access
Servus miteinander,
ich hoffe, mir kann jemand mit folgendem Problem in Access helfen:
Ich möchte über Access eins SQL-Abfrage erstellen, die folgendes "leisten" soll:
Und zwar soll die Select Abfrage diverse Attribute zählen (über COUNT) und anschließend von den gezählten Werten den größten auswerfen (MAX()).
Mir ist klar, dass ich hier mit der Anweisung MAX ( COUNT(*) ) arbeiten muss. Unter Oracle funktioniert das ganze auch, nur eben nicht unter Access.
Soviel ich weiß, muss es irgendwo eine Option geben, mit der ich einstellen kann, dass geschachtelte Aggregatfunktionen möglich sind.
Würde mich wirklich freuen, wenn mir jemand sagen könnte, wie da am besten dran gehe.
-
25.11.2005, 18:43 #2
Kbyte
- Registriert seit
- 01.2005
- Beiträge
- 477
Hallo,
so wirkliche Hilfe habe ich nicht, aber bei meiner Recherche
vor einem Jahr, Provider mit Access-Datenbankmöglichkeiten zu finden, war die Ausbeute sehr mager, zu kostspielig oder mit zuvielen Einschränkungen verbunden.
Dabei habe ich von den Providern mit SQL-Datenbanken immer wieder zu hören bekommen, dass ich meine Access-Formular-Sachen nicht unter SQL einrichten könne.
Möglicherweise geht Access gar nicht mit SQL konform.
Ich lasse mich aber auch gerne vom Gegenteil überzeugen,
da ich seinerzeit dass Thema erst einmal abgeschrieben habe.
Grüße von Annette.
-
26.11.2005, 13:44 #3
Kbyte
- Registriert seit
- 08.2004
- Beiträge
- 169
@BugsBunnyII:
verstehe ich die Aufgabenstellung nicht so richtig.
Count zählt die Tabelleneinträge (Datensätze), bei denen ein ggf. vorhandenes Kriterium zutrifft.
Max ermittelt den Maximalwert eines Feldes....
Max(Count) würde jetzt den Maximalwert eines gezählten Wertes entsprechen....den es aber nur einmal gibt. Das ergibt in Access (und für mich) keinen Sinn.
btw: Erstelle eine neue Abfrage. Über Ansicht - SQL kannst du dann direkt in das SQL-Fenster gelangen und dein Statement eingeben. Ist wahrscheinlich einfacher zu handhaben, wenn der Aufbau der Abfrage komplexer wird, als die Entwurfsansicht.....
(darin können dann auch Funktionen geschachtelt werden - eine spezielle Option gibt es AFAIK nicht!)
@annette65:
unter SQL wird da ohnehin nichts eingerichtet, schon gar keine Formulare...Dabei habe ich von den Providern mit SQL-Datenbanken immer wieder zu hören bekommen, dass ich meine Access-Formular-Sachen nicht unter SQL einrichten könne.
wahrscheinlich war hier gemeint, dass du deine Access-DB nicht (ohne weiteres) direkt auf dem Server ausführen kannst bzw. für Datenzugriffsseiten ein Server benötigt wird, der ASP unterstützt und somit zwingend ein Microsoft-Server sein muss.
Access verwendet sehr wohl SQL, wenn auch einen eigenen Dialekt. Das ist aber bei fast allen RDMS so. Man findet überall leichte Abweichungen.....
Nebenbei gibt es diverse ODBC-Treiber, die es ermöglichen, mit einer Access-Anwendung auf Datenbanken im Web zuzugreifen.
Z.B. MyODBC für MySQL-Datenbanken. Dadurch ist es durchaus machbar, jedes beliebige Webpaket mit Datenbankunterstützung aus Access heraus zu bedienen. (Man benötigt nur die Schnittstelle zu den Tabellen.)
Aber zugegeben: Die Anwendung muss sehr gut an die Gegebenheiten angepasst werden. Die verschiedenen SQL-Eigenheiten (gerade wenn verschiedene Systeme miteinander arbeiten sollen) können sonst zu Problemen führen.
CU
-
26.11.2005, 14:33 #4
Kbyte
- Registriert seit
- 01.2005
- Beiträge
- 477
Das bedeutet, wenn man nicht zwingend muss, sollte man
Zitat von racoon0506
nicht auf´s Anpassen scharf sein?
Empfiehlt sich My SQL generell für Datenbankanwendungen,
weil viele Provider das anbieten oder gibt´s Geeigneterere?
Grüße, Annette.
-
27.11.2005, 23:24 #5
Kbyte
- Registriert seit
- 08.2004
- Beiträge
- 169
Es muss halt sauber programmiert werden.
Oder anders ausgedrückt: Je nach verwendetem Datenbanksystem und dem verwendeten GUI sollte man die aktuellsten Treiber für die Schnittstellen verwenden.
MySQL wird zum einen aus Kostengründen, zum anderen wegen der Flexibilität verwendet.
Es ist garantiert günstiger (wenn nicht generell sogar kostenlos) als MS-SQL-Server und arbeitet sowohl unter Unix/Linux, als auch unter Windows.
Ausserdem kann es aus den verschiedensten Anwendungen heraus bedient und gepflegt werden. Da spielt es keine Rolle, ob es sich um eine Datenbankanwendung handelt, oder PHP-Webseiten.
Mit einem SQL-Server (MS) ist man da an ASP (für Webseiten) gebunden, was wiederum auch nicht so verbreitet eingesetzt wird.
------- schnipp ------
Aber das hat ja mit dem ursprünglichen Thema nichts mehr zu tun.
------- schnapp -----
-
29.11.2005, 13:49 #6
Kbyte
- Registriert seit
- 11.2005
- Ort
- Wriezen
- Beiträge
- 438
So ganz klar ist mir die Fragestellung auch noch nicht!
Beispiel?
Tabelle mit
Feld1 Feld2 Feld3
5 8 10
3 2 5
11 3 2
Dann würde er doch bei Count 3 rauskommen, egal bei welchem Feld. Deshalb wäre max doch da auch immer 3 oder? Oder zählst du mehrere verschiedene Tabellen? Vielleicht erklärst du dein Problem mal anschaulicher!
-
02.12.2005, 19:24 #7
Byte
- Registriert seit
- 01.2005
- Beiträge
- 33
Mit Zwischentabelle arbeiten
Salut
Ich bin mir nicht ganz sicher, ob's nicht auch anders geht, aber meist erzwingt das Cursorfreie Mini-SQL von Access den "Marsch mit der Kirche ums Dorf" :
Zwei Abfragen hintereinander, wobei die erste den COUNT(1) in eine temporäre Tabelle einsetzt und die zweite daraus das Aggregat bildet.
Abfrage 1 (so ungefähr, habe momentan kein SQL-Vademecum zur Hand)
INSERT COUNT(1) AS PROPERTY1 FROM TABLEA INTO TEMP
Abfrage 2
SELECT MAX([TEMP].[PROPERTY1])AS MAXIMALWERT FROM TEMP
Sodann ggf aufräumen:
Abfrage 3
DROP TEMP
AdieuGeändert von clkr (02.12.2005 um 19:26 Uhr) Grund: Stil und Kürze
-
03.12.2005, 13:14 #8
Kbyte
- Registriert seit
- 08.2004
- Beiträge
- 169
es ist relativ wurscht, ob man das über eine temporäre Tabelle oder direkt macht. Count gibt nunmal nur einen Wert zurück! und dieser Wert ist auch der Maximalwert....
Ohne zu wissen, was hier wirklich passieren soll, wird das nur ein Rätselraten.
sogar die Kristallkugel zeigt nur Nebel......Geändert von racoon0506 (03.12.2005 um 13:17 Uhr)
-
06.12.2005, 19:00 #9
Byte
- Registriert seit
- 01.2005
- Beiträge
- 33
@racoon0506
Salut
Ich habe ein bewußt plakatives, kleines, einfaches Beispiel gewählt. Wenns halt direkt nicht geht, aus welchen Gründen auch immer, dann wollte ich den Weg aufzeigen, wie man sich behelfen kann. Was mit irgendwelchen Datenbank-Treibern für MySQL-DaBa geht, muß deswegen noch lange nicht mit Abszeß gehen, oder? Und dazu braucht man auch die hinterletzten Details dieser vor uns schamhaft verschwiegenen Problematik nicht zu kennen. Ich jedenfalls nicht.
Zitat von racoon0506
Adieu
Ähnliche Themen
-
Application Access Server 1.0.25
Von Willi2000 im Forum Online: Ihre Meinung zu redaktionellen Artikeln auf unserer WebsiteAntworten: 2Letzter Beitrag: 05.04.2004, 10:35 -
Folder Access 2.0.0
Von Svenk53 im Forum Online: Ihre Meinung zu redaktionellen Artikeln auf unserer WebsiteAntworten: 1Letzter Beitrag: 13.02.2004, 17:31 -
eBook des Tages: Access 2002 programmieren
Von LennartS im Forum Online: Ihre Meinung zu redaktionellen Artikeln auf unserer WebsiteAntworten: 3Letzter Beitrag: 27.12.2003, 21:50 -
eBook des Tages: Access 2002 Programmierung - Kompendium
Von neelixx im Forum Online: Ihre Meinung zu redaktionellen Artikeln auf unserer WebsiteAntworten: 0Letzter Beitrag: 05.11.2003, 13:35
12

Zitieren
Lesezeichen