Mahlzeit!
SELECT [HDD].[HDD_Name], Count([Daten].[Art]) AS Ordner
FROM HDD LEFT JOIN Daten ON [HDD].[HDD_Name]=[Daten].[HDD_Name]
AND Daten.Art=„Ordner“
GROUP BY [HDD].[HDD_Name];
Bei diesem Ausdruck erhalte ich für Daten.Art=„Ordner“ eine Fehlermeldung, „Verknüpfungsausdruck nciht unterstützt.“
Ok, kurze Erklärung meiner Datenbank, weil das obere leider noch immer nicht funktioniert.
Es gibt eine Tabelle Daten:
Titel | HDD\_Name | Größe | Art | Format ...
----- --------
----------------------------------------...
Titel und HDD_Name bilden den zusammengesetzten Primärschlüssel. Titel ist der Name des Ordners, wie er auf der HDD zu finden ist. HDD_Name ist der HDD-Name
. Größe in GB angegebener Speicherplatz der Ordner.
Art kann nur FILM, SERIE oder ORDNER sein. Format kann nur DVD, AVI oder DAT sein.
Auf den HDDs speichere ich also viele schöne Sachen ab, die zwar alle in Ordnern sind, aber für mich in der Datenbank unterschiedlich erfasst werden. Eine DVD in einem Ordner ist von der ART ein FILM und vom FORMAT DVD. Speichere ich aber Daten ab, z.B. Bilder im Ordner Bilder, so ist der Titel „Bilder“, die Art ist ORDNER und das Format ist DAT. Ganz einfach!
Und nun wollte ich mir in einer Zusammenfassung anzeigen lassen, wie viele FILME, SERIEN und ORDNER ich auf den jeweiligen HDDs habe.
Die SQL-Anweisung dazu ist größer als alle anderen und holt ihre Daten aus anderen Abfragen. Jedoch ist das Ergebnis leer, da die Abfrage nach den ORDNERN noch kein Ergebnis bringt.
SELECT [belegt].[HDD], [HDD].[Kapazität], [belegt].[belegt], [frei].[frei], [Titelanzahl].[gesamt] AS Titel\_Anzahl, [DVDanzahl].[DVDs], [AVIanzahl].[AVIs], [Filmanzahl].[Filme], [Serienanzahl].[Serien], [Ordneranzahl].[Ordner]
FROM HDD, belegt, frei, Titelanzahl, DVDanzahl, AVIanzahl, Filmanzahl, Serienanzahl, Ordneranzahl
WHERE ((([HDD].[HDD\_Name])=[belegt].[HDD] And ([HDD].[HDD\_Name])=[frei].[Name] And ([HDD].[HDD\_Name])=[Titelanzahl].[HDD\_Name] And ([HDD].[HDD\_Name])=[DVDanzahl].[HDD\_Name] And ([HDD].[HDD\_Name])=[AVIanzahl].[HDD\_Name] And ([HDD].[HDD\_Name])=[Filmanzahl].[HDD\_Name] And ([HDD].[HDD\_Name])=[Serienanzahl].[HDD\_Name] And ([HDD].[HDD\_Name])=[Ordneranzahl].[HDD\_Name]))
ORDER BY [HDD].[HDD\_Name];
Tja, so siehts aus. Ich weiß nicht ob das gut oder schlecht ist, aber mir reichts für meine Zwecke
Doch für Verbesserungsvorschläge habe ich immer ein offenes Ohr!
MfG
Rogge