2016-08-11 8 views
1

をIは、テーブルのフィールドを持つデータベースを有しています。MSAccessを

例:

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

どのように私のようなものに、クエリを使用して理想的には、これを変換について得になります。各タグは、列ヘッダーなど、すべてのパラメータを指定して、一度だけ表示されます

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

フィールドに入力された値。

これは、最初にOp Parameterのテーブルを生成するSQLクエリで、同じ目的でこのテーブルをParameterとして扱うことができます。

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

あなたはSQLクエリ提供することはできますか? –

+0

最初にテーブルを生成するクエリと同じですか? –

答えて

1

クロスタブクエリは、後にしている結果が得られます:Table1があなたの元のクエリの名前です

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

+0

乾杯、それは私が必要とするものです。 –

2

これはクロス集計(TRANSFORM)クエリです。

クロス集計クエリに「新しいクエリ」ウィザードを使用することをお勧めします。

  • Tagは行ヘッダーです。
  • Parameterが列ヘッダーです。
  • Value
  • は、適切な集約関数を使って、値:)である(合計または第例えば)
+0

これはレポートのデータソースとして使用できますか? –

+0

これはあまり簡単ではありません。なぜなら、列の数が可変であるからです。そうでない場合(異なるパラメーターのセットが修正されている場合)、はい。出力は、通常のSELECTクエリと同様のデータシートです。 – Andre

+0

ああ大丈夫、ありがとう!それは私に正しい方向に行く –

関連する問題