1

オンラインで見つけるのが驚くほど難しい、単純な問題があります。おそらく私は不適切なキーワードを検索しているので、あなたのサイトは私の研究に恵まれているので、立ち寄って皆さんに聞いてみたいと思いました。以下のシナリオを参照してください。

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

生徒に対して実行されている実際のカウントを変更しないように、左結合で実行する必要があると想定しました。ありがとう!

4

1 に答える 1