0

私は2つのテーブルを持っています

MD_Master(医療チェック)
Id
..。

CD_Personal(個人小切手)
Id
..。

両方のテーブルの各フィールド名は、異なる名前、タイプ、およびデータです。

ただし、それぞれに主キーIdがあり、他のキーと競合する可能性があります。

つまり、とId 101の両方MD_Masterに存在できますCD_Personal

両方のテーブル(combiningMD_MedicalCD_Personal Idfields)を組み合わせたビューを作成したいのですが、の処理方法がわかりませんId

のビューが欲しいのNumeric(19,0)ですがId

これらの2つの異なるテーブルを選択して結合し、一意のIDを作成することは可能でしょうか?

ありがとう

4

3 に答える 3

3

ここで何をしようとしているのかは明確ではありませんが、次のように各行に識別子を作成できます。

SELECT Id, 'M' as tbl
FROM MD_Master
UNION ALL
SELECT Id, 'P' as tbl
FROM CD_Personal

これにより、レコードがどのテーブルからのものであるかを確認することで、各行を区別できます。次に、同じレコードがある場合は、IDどのテーブルからのものかがわかります。

于 2012-09-05T16:06:49.540 に答える
1

あなたはこのようなことを試すことができます:

declare @medical table(id int, checks varchar(10))

declare @personal table(id int, checks varchar(10))

insert into @medical 
select 1, 'abc1'
union
select 2, 'abc2'

insert into @personal
select 1, 'abc1'
union
select 2, 'abc22'

;WITH CTE AS (
select *, 'M' As Src from @medical 
union
select *, 'P' As Src from @personal
)

SELECT checks, src, ROW_NUMBER() over (order by checks, id) new_id FROM CTE

あなたの場合:

SELECT checks, src, ROW_NUMBER() over (order by [checks], id) new_id 
FROM 
(

SELECT id, [Medical checks] Checks, 'M' as Src FROM MD_Master
UNION ALL
SELECT id, [Personal checks] Checks, 'P' as Src FROM CD_Personal

)
于 2012-09-05T16:05:06.343 に答える
0

おそらく、IDを何かと連結して、競合を防ぐことができますか?必要に応じて、もう一度解析して元に戻すことができます。

SELECT CONVERT(varchar, ID) + 'MD', FirstName, LastName, DOB FROM MD_Master
UNION
SELECT CONVERT(varchar, ID) + 'CD', FirstName, LastName, DOB FROM CD_Personal

その後、データをどうしようとしていますか?

于 2012-09-05T16:02:15.867 に答える