Unterabfrage? Das ist eine meiner Schwächen, wenn es um Access geht, also kann ich dir nicht helfen. Ich würde vorschlagen, die SQL der Abfrage zu veröffentlichen, damit andere einen Blick darauf werfen können. Was passiert auch, wenn Sie die Abfrage ausführen?
Das folgende ist eine Abfrage, die ich verwende, um mir Kosten für die letzten zehn Jahre für eine gegebene Einheit zu geben. TRANSFORMATION Sum (ServiceRecords.srTotalCost) AS AnnualCost SELECT FROM ServiceRecords.srEquipmentID ServiceRecords GROUP BY ServiceRecords.srEquipmentID pivot "C" & DatDiff ("yyyy", [srServiceDate], Date()) In ("C9", C8, C7, C6, C5, C4, C3, C2, C1, C0);
Der Trick ist nach dem PIVOT. Da ich die Daten der letzten zehn Jahre haben möchte, stellt der "C" & DateDiff-Teil einen Stringvariablenruf C0 bis C9 auf. Der Abschnitt nach dem In gibt an, in welche Spalte die Dinge eingefügt werden sollen.
Eine andere Abfrage, die Daten über das Equipment einholt, ruft diese Abfrage auf. Der Begriff, den wir normalerweise für solche verwenden, sind gestapelte Abfragen.
Wenn dies nicht ausreicht, geben Sie bitte an, um welche Art von Daten Sie eine Kreuztabelle erstellen möchten.
Fellow Access MVP, Allen Browne hat eine gute Seite zu diesem Thema. Crosstab query techniques
Hier ist ein Beispiel. Abhängig von den Daten im Filter wird eine andere Anzahl von Spalten zurückgegeben. VERäNDERN Sum (tblCharting.Hours) AS SumOfHours SELECT tblCharting.DateofService VON tblCharting RIGHT JOIN tlkpServiceLocations_SQL ON tblCharting.ServiceLocation = tlkpServiceLocations_SQL.ID WHERE (((tblCharting.DateofService) Zwischen # 5/1/2009 # und # 5/5/2009 #)) GROUP BY tblCharting.DateofService, tblCharting.DateofService PIVOT tlkpServiceLocations_SQL.LocationName; Ich bin auf der Suche nach immer die gleiche Anzahl von Spalten, die die Zeilen in der Lookup-Tabelle ist. – Robert