0
プライマリDBにtblGlobalIDMapping
と呼ばれる単一のテーブルを作成しました。このテーブルはすべてのエントリにGUIDを割り当て、他の3つのプライマリIDをアプリケーション全体に格納して1つのIDリポジトリを提供します。SQL:複数の行から1行(tbl1)を読み込みます(tbl2)。クロスDB
新しい表は、以下の構造である - >
AppGlobalID uniqueidentifier NoNulls
PersonID int NoNulls
DRIMaster int Nulls
DRIClient int Nulls
I必要な情報は、以下の部分構造を有する異なるDB(同じサーバー)に表にされる - >
PersonID int NoNulls
ApplicationID tinyint NoNulls
PersonApplicationID varchar(14) NoNulls
人物(ID#13579)は、アプリケーションごとに2番目の表1に表示されます。 ApplicationID列には、DRIMasterの場合は1、DRIClientの場合は6が格納され、PersonApplicationIDのID番号が何であるかを示します。
このテーブルから新しいテーブルに一括コピー/挿入する必要がありますが、新しいテーブルに3つのメインIDを記録する行が1つだけ必要です。
これはこれまでの説明ですが、これは各PersonIDの行を返します。
SELECT PersonID,
CASE
WHEN ApplicationID = 1
THEN PersonApplicationID
END AS 'DRIMaster',
CASE
WHEN ApplicationID = 6
THEN PersonApplicationID
END AS 'DRIClient'
FROM tblApplicationAssociation
WHERE ApplicationID IN (1,6)
これは、以下を返します - >
PersonID DRIMaster DRIClient
_______________________________
108574 71163 NULL
108574 NULL 71163
ヌルを無視し、そう......。私は、DISTINCT PersonIDクエリが51241を返し、このクエリが51233を返し、現在、8個のPersonIDが不足していると説明できないことを少し心配しています。 –
ApplicationId In(1,6)でフィルタリングしています。紛失した8人に2つのアプリケーションIDがない可能性はありますか? –
それは私の元々の思想でしたが、次のクエリ - > 'DISTINCTを選択PersonID FROM tblApplicationAssociation どこApplicationID NOT IN(1,6)' 13253レコードを返します....私は困惑しています! –