オンラインで見つけるのが驚くほど難しい、単純な問題があります。おそらく私は不適切なキーワードを検索しているので、あなたのサイトは私の研究に恵まれているので、立ち寄って皆さんに聞いてみたいと思いました。以下のシナリオを参照してください。
mystudiesからstudent、count(*)をTotal(未知の変数:book1、book2、book3、book4、ect ...)として選択します。
基本的に、私がやりたいのは、合計数に一致する一意の学生IDのすべての本をリストすることです。誰かが私を正しい方向に向けたり、よく読んだりすることができますか?そうすれば、私は正しい方向に一歩進むことができますか?私はそれが左結合(x1、x2、x3の部分を行う方法がわからない)を介して行われ、次に2つを一意の学生ID番号(重複なし)でリンクすることを想定していますが、オンラインの全員がピボットを指していますが、ピボットが表示されます1つの列ではなく、すべての行を列に配置します。SQL Server 2005は、最適なプラットフォームです。
ありがとう!
ごめん
次のクエリは、テーブル内のすべての重複エントリに対する私の一意のID(学生)と学生の数を生成します。
select student, count(*) as Total
from mystudies
group by student order by total desc
私が知らない部分は、テーブルの一意のID(boookid)に左結合を作成する方法です
select mystudies1.student, mystudies1.total, mystudies2.bookid
from ( select student, count(*) as Total
from mystudies
group by student
) mystudies1
left join
( select student, bookid
from mystudies
) mystudies2
on mystudies1.student=mystudies2.student
order by mystudies1.total desc, mystudies1.student asc
明らかに、上記の行は次のような結果を生成します。
Student Total BookID
000001 3 100001
000001 3 100002
000001 3 100003
000002 2 200001
000002 2 200002
000003 1 300001
しかし、私が実際に欲しいのは、次のようなものです。
Student Total BookID
000001 3 100001, 100002, 100003
000002 2 200001, 200002
000003 1 300001
生徒に対して実行されている実際のカウントを変更しないように、左結合で実行する必要があると想定しました。ありがとう!