2つのテーブルがあります。すなわちSQL - 行を結合しながらテーブル間でデータを照合します。
表1:
RecordId RecordDescription
1 Red
2 Green
3 Blue
表2:
RecordID FieldID FieldValue
1 10 3.1
1 20 2.8
1 30 4.2
2 20 3.8
3 10 6.6
3 30 5.5
私のようなものに見える組み合わせたテーブルを生成したいと思います: 表3を:
RecordID Field10Value Field20Value Field30Value
1 3.1 2.8 4.2
2 3.8
3 6.6 5.5
これはそれのように思えますかなりストレートでなければならないが、私は自分自身をサークルで運転し続けている。
それは私が使用することができるはずのように感じている:
SELECT * FROM (
SELECT RecordID, Field10Value, Field20Value, Field30Value FROM (
SELECT MAX(CASE WHEN FieldID=10 THEN FieldValue ELSE NULL END) as Field10Value,
SELECT MAX(CASE WHEN FieldID=20 THEN FieldValue ELSE NULL END) as Field20Value,
SELECT MAX(CASE WHEN FieldID=30 THEN FieldValue ELSE NULL END) as Field30Value
FROM Table2)) JOIN Table1 on RecordID
をしかし、私は私の構文の権利を取得するように見えることができないとはるかにエレガントな方法があるかもしれないようにそれはそう(私は実際には非常に持っていますいくつかのFieldID値...)
ご協力いただければ幸いです。 私は実際にExcelのVBA呼び出しからこれを行うことを試みているので、単一のクエリ呼び出しが理想的です。
データベースはどのように動作していますか? –
正直、わかりません。 Excel 2010内でVBAからADODB呼び出しを使用してアクセスしています。「プロバイダ」は「SQLOLEDB」です。私はそれがMicrosoft SQL Serverだと確信しています。 – Robert