このようなテーブルがあります。このテーブルを呼び出しましょうB
。
id boardid schoolid subject cnt1 cnt2 cnt3 ....
=================================================================
1 20 21 f
2 20 21 r
3 20 21 w
4 20 21 m
5 20 30 r
6 20 30 w
7 20 30 m
カウントが単なる整数であるとします。subject = f
forがないことに注意してくださいschoolid = 30
。同様に、ほとんどの学校にはsubject
存在しない学校もあります。あなたschoolid
はちょうどまたはちょうどr, w
あるいくつかを持っているかもしれませんr, m, f
..
だから私がやりたいのは、学校ごとに4つの一貫した行を持ち、存在しない行にはダミー値が必要です。セカンダリテーブルを作成することを考えました
drop table #A
Select * into #A FROM
(
select [subject_s] = 'r', orderNo = 1
union all
select [subject_s] = 'w', orderNo = 2
union all
select [subject_s] = 'm', orderNo = 3
union all
select [subject_s] = 'f', orderNo = 4
) z
それらにいくつかの結合を行っていますが、どこにもありません。内部結合、左外部結合、クロス結合、すべてを試しました。私もデカルト積を作ろうとしました。そこにあるため、デカルト積が台無しになっていると思うorderno
ので、メインテーブルの行ごとに16行になります。実際にこれを入力すると、 を削除しorderno
、デカルト積を適用してから orderno を後で追加すると、うまくいくかもしれませんが、皆さんが思いつくものを見てみたいと思います. 私は困惑しています。
最終結果
id boardid schoolid subject cnt1 cnt2 cnt3 ....
=================================================================
1 20 21 r
2 20 21 w
3 20 21 m
4 20 21 f
5 20 30 r
6 20 30 w
7 20 30 m
7 20 30 f