2016-12-13 13 views
0

希望の結果を得るために、2つのテーブルでクロス集計クエリを適用する必要があります。 (MS-ACCESS)私はまず大きなテーブルに移動する前に、単純なテーブルにクロス集計クエリを書く方法を学びたいと思います。MS Accessでのクロスタブクエリ

表1:

**DATE** |  **NAME** 
------------------------------------- 
13/12/16 | Sofia  
13/12/16 |  Sonia 
13/12/16 |  Jas  
14/12/16 | Sofia 
15/12/16 | Sonia 

所望の結果(P =現在; A =不在)

**Name** | **13/12/16** | **14/12/16** | **15/12/16** 
-------------------------------------------------------- 
Sofia | **P** | **P** | **A** 
Sonia | **P** | **A** | **P** 
Jas | **P** | **A** | **A** 

答えて

0

クロスタブクエリにアプローチする一つの方法は、条件集合を使用することである。

select name, 
     max(iif(date = "13/12/16", "P", "A") as [13/12/16], 
     max(iif(date = "14/12/16", "P", "A") as [14/12/16], 
     max(iif(date = "15/12/16", "P", "A") as [15/12/16] 
from t 
group by name; 

データに日付がどのように表示されているかわからないため、文字列と見なしました。

+0

ありがとうございます。もし12月に31の日付列(最初の表にあるかどうかにかかわらず)と名前列と名前がついていて、 'P'か 'その特定の日付と名前が表1にある場合は 'A'ですか? –

+0

@SofiaUsman。 。 。必要な日付ごとに 'max()'行を繰り返すだけです。 –

+0

MS Access SQLは 'Case'文をサポートしていませんか? – Parfait