2
変更データがテーブルに記録されている地質データベースのクエリtblDHAlterationを作成しようとしています。どのようにして異なる列のデータを1つに再統一することができますか?地質データベースのUnionまたはCoalesceクエリの使用
例えばSER、SI、BIOTグラフのような種々の変更コードが、配置されているように、私は、クエリとして、またはビューのいずれかのテーブル内のデータを再編成するSQL Server 2012
を使用添付の画像に示されているようにそれぞれの列に表示されます。
私は複数のユニオンクエリを作成してから、データを結合しようとしました。私はビューを作成して終了しましたが、これは機能しますが、私は、複数のビューを作成して融合を避けることを望んでいました。これらを書くのがより簡単で効率的な方法はありますか?
ありがとうございました。 乾杯
ビューAA:
(SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, Alt_SER, Alt_SI from
(SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, Alt_SER, NULL as 'Alt_SI' from
(SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, Alt1_Code as Alt_SER FROM tblDHAlteration where Alt1_Code = 'SER') A
UNION ALL
SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, Alt_SER, NULL as 'Alt_SI' from
(SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, Alt2_Code as Alt_SER FROM tblDHAlteration where Alt2_Code = 'SER') B) AA)
ビューBB:
(SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, Alt_SER, Alt_SI from
(SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, NULL AS 'Alt_SER', Alt_SI from
(SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, Alt1_Code as Alt_SI FROM tblDHAlteration where Alt1_Code = 'SI') A
UNION ALL
SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, NULL AS 'Alt_SER', Alt_SI from
(SELECT DATASET, HOLE_ID, Depth_FROM, DEPTH_TO, Alt2_Code as Alt_SI
FROM tblDHAlteration where Alt2_Code = 'SI') B) BB)
COALESCEクエリ:
SELECT COALESCE (AA.DATASET, BB.DATASET) DATASET, COALESCE (AA.HOLE_ID, BB.HOLE_ID) HOLE_ID, COALESCE (AA.DEPTH_FROM,BB.DEPTH_FROM) DEPTH_FROM,
COALESCE (AA.DEPTH_TO,BB.DEPTH_TO) DEPTH_TO,
COALESCE(CAST(AA.Alt_SER as nvarchar(25)),CAST(BB.Alt_SER as nvarchar(25))) ALT_SER,
COALESCE(CAST(AA.Alt_SI as nvarchar(25)),CAST(BB.Alt_SI as nvarchar(25))) Alt_SI,
From AA full outer join BB
on AA.Dataset = BB.DataSet and AA.Hole_ID = BB.Hole_ID AND AA.Depth_From = BB.Depth_From
order by dataset, hole_ID, Depth_From
ファンタスティックピーテル!どうもありがとう。私はちょうどtblDHAlterationといくつかの "、"クロスセクションを適用するために追加しなければならなかったとその実行は素晴らしい実行される! – Cleaver