2016-08-11 2 views
1

habe ich eine Datenbank, in der eine der Tabellen die Felder hat:einen Feldwert in den Spaltentitel Drehen - MSAccess

|Tag|Parameter|Value|

Wo jeden Tag mehrere Parameter haben kann, aber jeder Parameter hat nur einen Wert.

zB:

|Tag|Parameter|Value| 
|t10|HHAPRI |154 | 
|t10|LLAPRI |4 | 
|t16|HHAPRI |12 | 

Wie würde ich habe dies zu verwandeln, im Idealfall mit einer Abfrage, um so etwas wie:

|Tag|HHAPRI|LLAPRI| 
|T10|154 |4  | 
|T16|12 |  | 

Wo jeder Tag nur einmal angezeigt wird, mit allen Parametern als Spaltenüberschriften und die in die Felder eingegebenen Werte.

Dies ist die SQL-Abfrage, die die Tabelle in erster Linie erzeugt Op Parameter als Parameter für diesen Zweck in derselben behandelt werden sollte.

SELECT tblAlarmPriorities.*, tblOperatingMode.Parameter AS [Op Parameter], tblOperatingMode.Value AS [Op Value], tblOperatingMode.Correct_Operating_Mode, tblOperatingMode.Alarm_Low_Low, tblOperatingMode.Alarm_Low, tblOperatingMode.Alarm_High_High, tblOperatingMode.Alarm_High, tblLookUp.ParameterDesc AS AlarmParamDesc, tblLookUp_1.ParameterDesc AS OpParamDesc, * 
FROM ((tblAlarmPriorities LEFT JOIN tblLookUp ON tblAlarmPriorities.Parameter = tblLookUp.ParameterIdent) INNER JOIN tblOperatingMode ON tblAlarmPriorities.CS_Tag = tblOperatingMode.CS_Tag) LEFT JOIN tblLookUp AS tblLookUp_1 ON tblOperatingMode.PARAMETER = tblLookUp_1.ParameterIdent; 
+0

Können Sie Ihre SQL-Abfrage zur Verfügung stellen? –

+0

Wie in der Abfrage, die die Tabelle an erster Stelle generiert? –

Antwort

1

Eine Kreuztabelle Abfrage werden die Ergebnisse geben sind Sie nach:

TRANSFORM SUM(sValue) AS SumOfsValue 
SELECT Tag 
FROM Table1 
GROUP BY Tag 
PIVOT Parameter 

wo Table1 der Name Ihrer ursprünglichen Abfrage.

+0

Prost, das ist ziemlich genau das, was ich brauche –

2

Dies ist eine Kreuztabellen (TRANSFORM) -Abfrage.

Ich empfehle, den Assistenten "neue Abfrage" für Kreuztabellenabfragen zu verwenden.

  • Tag ist die Zeilenüberschrift.
  • Parameter ist die Spaltenüberschrift.
  • Value ist der Wert :), eine geeignete Aggregatfunktion (Sum oder First z) unter Verwendung von
+0

Kann dies als Datenquelle für einen Bericht verwendet werden? –

+0

Das ist nicht so einfach, weil die Anzahl der Spalten variabel ist. Wenn nicht (die Menge der verschiedenen Parameter ist fix), dann ja. Die Ausgabe ist ein Datenblatt genau wie von einer normalen SELECT-Abfrage. – Andre

+0

Ahh okay, danke! Es bringt mich zumindest in die richtige Richtung –

Verwandte Themen