VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/10/31(Tue) 14:31
投稿者
Eメール
URL
タイトルRe^3: 結果を並べて表示させたい

Accessで適当かつ強引に作ってみましたがこんな感じでしょうか?

SELECT T_00.名前,
       IIf(IsNull(T_01.順位1), "0", T_01.順位1) As 1着,
       IIf(IsNull(T_02.順位2), "0", T_02.順位2) As 2着,
       IIf(IsNull(T_03.順位3), "0", T_03.順位3) As 3着
FROM (([SELECT テーブル.名前
       FROM テーブル
       GROUP BY テーブル.名前]. AS T_00
LEFT JOIN [SELECT テーブル.名前, Count(テーブル.順位) AS 順位1
          FROM テーブル
          WHERE (((テーブル.順位) = "1着"))
          GROUP BY テーブル.名前]. AS T_01 ON T_00.名前 = T_01.名前)
LEFT JOIN [SELECT テーブル.名前, Count(テーブル.順位) AS 順位2
          FROM テーブル
          WHERE (((テーブル.順位) = "2着"))
          GROUP BY テーブル.名前]. AS T_02 ON T_00.名前 = T_02.名前)
LEFT JOIN [SELECT テーブル.名前, Count(テーブル.順位) AS 順位3
          FROM テーブル
          WHERE (((テーブル.順位) = "3着"))
          GROUP BY テーブル.名前]. AS T_03 ON T_00.名前 = T_03.名前
ORDER BY T_01.順位1 DESC , T_02.順位2 DESC , T_03.順位3 DESC;

Accessのクエリ作成で作ったものなので、プログラムから利用する際は
若干の修正が必要になるかもしれません。

結果は以下の様になります。

名前    1着    2着    3着
はる    1    2    0
なつ    0    1    1
ふゆ    0    1    0
あき    0    0    1


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -