0

フラット テーブルを変換する Access 2016 クエリを作成しようとしています。

ID |Date |Site Name | Alexandrium | Ceratium | etc etc

...複数行のテーブルに:

ID |Date |Site Name | Species | Num

私はこれを行うことができましたが、クエリは非常に長くなります.種ごとに20個の値/列があり、種名ごとにUNIONクエリを作成する必要があります:

    SELECT ID, Date, [Site Name], "Alexandrium" as Species, Alexandrium as Num
        FROM DatabaseName
    UNION ALL
    SELECT ID, Date, [Site Name], "Ceratium" as Species, Ceratium as Num
        FROM DatabaseName
    UNION ALL

などなど。

これを行うためのより良い方法はありますか?クエリに列名のリストを入力すると、それらを反復処理し、クエリを実行し、それらすべてを UNION しますか?

前もって感謝します!

4

1 に答える 1

0

Access には、SQL Server のようにピボットを簡単に解除する方法がありません。

名前のリストがあり、SQL を書きたくない場合は、次のようにクエリに入力できます。

SELECT "SELECT ID, Date, [Site Name], '" & [SpeciesName]
& "' as Species, " & [SpeciesName] & " as Num FROM DatabaseName UNION " AS Expr1
FROM Species

次に、結果をコピーし、最後の UNION を削除して、SQL をクエリに貼り付けます

于 2016-05-19T22:19:43.130 に答える