私は内部と外部の2つのテーブルを持っています。 両方のテーブルには同じ列があります。タイトル、名前、住所、ID、REFNO、MergeRefNo、ステータスSQL Join ADODB
'外部' の表は、以下のデータを持っていると仮定します
<table style="width: 351px;">
<tbody>
<tr>
<td style="width: 38px;">Title</td>
<td style="width: 43px;">Name</td>
<td style="width: 59px;">Address</td>
<td style="width: 25px;">Id</td>
<td style="width: 52px;">RefNo</td>
<td style="width: 86px;">MergeRefNo</td>
<td style="width: 47px;">Status</td>
</tr>
<tr>
<td style="width: 38px;">Mr.</td>
<td style="width: 43px;">White</td>
<td style="width: 59px;">123</td>
<td style="width: 25px;">D1</td>
<td style="width: 52px;">100_A</td>
<td style="width: 86px;">NULL</td>
<td style="width: 47px;">A</td>
</tr>
<tr>
<td style="width: 38px;">Ms.</td>
<td style="width: 43px;">Rita</td>
<td style="width: 59px;">234</td>
<td style="width: 25px;">D2</td>
<td style="width: 52px;">100_B </td>
<td style="width: 86px;">NULL </td>
<td style="width: 47px;">A </td>
</tr>
<tr>
<td style="width: 38px;">Dr.</td>
<td style="width: 43px;">CP</td>
<td style="width: 59px;">678</td>
<td style="width: 25px;">D3</td>
<td style="width: 52px;">100_C</td>
<td style="width: 86px;">100_B</td>
<td style="width: 47px;">M </td>
</tr>
</tbody>
</table>
をそして '内部' テーブルは以下のようにデータを持っています:
<table style="width: 351px;">
<tbody>
<tr>
<td style="width: 38px;">Title</td>
<td style="width: 43px;">Name</td>
<td style="width: 59px;">Address</td>
<td style="width: 25px;">Id</td>
<td style="width: 52px;">RefNo</td>
<td style="width: 86px;">MergeRefNo</td>
<td style="width: 47px;">Status</td>
</tr>
<tr>
<td style="width: 38px;">Mr.</td>
<td style="width: 43px;">John</td>
<td style="width: 59px;">XYZ</td>
<td style="width: 25px;">D1</td>
<td style="width: 52px;">100_A</td>
<td style="width: 86px;">NULL</td>
<td style="width: 47px;">A</td>
</tr>
<tr>
<td style="width: 38px;">Ms.</td>
<td style="width: 43px;">Blue</td>
<td style="width: 59px;">CDE</td>
<td style="width: 25px;">M6</td>
<td style="width: 52px;">100_B </td>
<td style="width: 86px;">NULL </td>
<td style="width: 47px;">A </td>
</tr>
<tr>
<td style="width: 38px;">Dr.</td>
<td style="width: 43px;">CP</td>
<td style="width: 59px;">678</td>
<td style="width: 25px;">D3</td>
<td style="width: 52px;">100_C</td>
<td style="width: 86px;">100_B</td>
<td style="width: 47px;">M </td>
</tr>
</tbody>
</table>
IDが両方のテーブルで同じで、ステータスが 'A'(または)RefNosが同じでステータスが( 'A'、 'M')の場合、 'Internal'のデータは 'External'を上書きする必要があります。
上記の例では、両方のテーブルで両方のD1が共通であるため、「白」は「John」に置き換えてください。また、「リタ」は
は、だから私は、以下のクエリ
select isnull(c.title,isnull(b.title,a.title)),isnull(c.initials,isnull(b.initials,a.initials)),isnull(c.forename,isnull(b.forename,a.forename)),isnull(c.surname,isnull(b.surname,a.surname)),isnull(c.id,isnull(b.id,a.id))
from external a
left join internal b on a.id = b.id -- and status = 'a' -- unable to use this in ADO
left join internal c on c.refno= a.refno -- and status in ('a','m') -- unable to use this in ADO
を書きましたが、値がであった場合に「外部」(IDが異なるが、すなわち100_B)Refnosが等しいため、「青」で上書きする必要があります内部で 'null'データに置き換える必要があるデータ型(例:XYZ)では、IsNullのために上記のクエリが失敗します。両方の結合条件を満たす(つまりIDが同じ(または)Refnosが同じ)「Internal」テーブル値を実際にどのように使用できますか。
(貧しいフォーマットについて謝罪)
(クエリで述べたように、いずれかの手がかりが.. ADODBで結合条件でフィルタを使用することができない?)
多くの感謝!