2
私はsqlite 3.15.1を使用しています。sqliteの値が不明確な数
大学のマスタータイムテーブルを含むテーブルmaster
があります。
それは次のようになります。
を意味し、同じ他の値のために複数のsub_idはあります....
day sem sec hour sub_id
---------- ---------- ---------- ---------- ----------
MON 5 B 4 10IS51
MON 5 B 4 10IS53
MON 5 B 5 10CS54
MON 5 B 6 10CS55
MON 5 B 7 10CS53
MON 3 A 1 10CS33
と、より多くの価値 - 月曜日の第一の時間では、第5回Bの学生が持っているかもしれません2つ以上のlab(sub_id)。 (それはバッチで行われます)。
適切なタイムテーブルを取得するために、私はこれをやっている:
select day,
max(case when hour =1 then sub_id end) as 'hour-1',
max(case when hour =2 then sub_id end) as 'hour-2',
max(case when hour =3 then sub_id end) as 'hour-3',
max(case when hour =4 then sub_id end) as 'hour-4',
max(case when hour =5 then sub_id end) as 'hour-5',
max(case when hour =6 then sub_id end) as 'hour-6',
max(case when hour =7 then sub_id end) as 'hour-7',
max(case when hour =8 then sub_id end) as 'hour-8'
from master
where sem=5 and sec='B'
group by day
order by day;
をしかし、複数の値はすなわち、max()
値を発生した場合には、一つの値だけを与えます。 min()
を使用すると、min()の値が得られます。 どうすれば両方を取得できますか?
結果ビューは次のようになります。
day hour-1 hour-2 hour-3 hour-4 hour-5 hour-6 hour-7 hour-8
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
FRI 10CS52 10CS54 10CS53 10CS55 HRD HRD TUT
MON 10CSL58 10CSL58 10CSL58 10IS51 10CS54 10CS55 10CS53
SAT 10IS51 10CS55 10CS56 10CS52
THU 10CS53 10IS51 10CS54 10CS52
TUE 10CS54 10CS52 10CS56 10CS56
WED 10CS56 10IS51 10CS53 10CS55 CSA CSA CSA
しかし、私はこのような何かしたい:、すべてのクラスである
day hour-1 hour-2 hour-3 hour-4 hour-5 hour-6 hour-7 hour-8
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
FRI 10CS52,10CS53 10CS54 10CS53 10CS55 HRD HRD TUT
MON 10CSL58 10CSL58,10CSL33 10CSL58 10IS51 10CS54 10CS55 10CS53
SAT 10IS51,10IS48 10CS55 10CS56 10CS52
THU 10CS53 10IS51 10CS54 10CS52
TUE 10CS54 10CS52 10CS56 10CS56
WED 10CS56 10IS51 10CS53 10CS55 CSA CSA CSA
- 代わり分のカンマ区切りを、()またはMAX( )。
これは可能ですか?私を助けてください。
ありがとうございました。