Access でこれが実行できるかどうかはわかりません。フォーラムを Google で検索しましたが、まだ有効な解決策は見つかりませんでした...
基本的に、異なる時間に複数の血液サンプルを提供する患者のリストがあります。各サンプルは収集され、ラックバーコードで記録されます。各ラックバーコード(サンプル)には、複数のチューブバーコード(サンプルの一部)があります。
3 つのテーブルを持つデータベースがあります。
ID情報: 患者情報(患者ID、人口統計情報)
バーコード: 患者ごとに収集されたすべてのサンプルのリスト (ラックバーコード、チューブバーコード a、チューブバーコード b)
バーコードの割り当て: 各患者に割り当てられているバーコード テーブルからのラック バーコード。(患者 ID、ラック バーコード 1、ラック バーコード 2) ラック バーコード 1 は、時点 1 で収集されたサンプルであり、ラック バーコード 2 は、時点 2 で同じ患者から収集されたサンプルです。ラック バーコード 1 とラック バーコード 2 は、どちらもバーコード テーブルで「ラック バーコード」として表示されます。
ID 情報とバーコード割り当ての間に患者 ID を使用した内部結合があります。バーコードとバーコード割り当ての間には 2 つの外部結合があります。バーコード テーブルの rackbarcode は、バーコード割り当てテーブルの RackBarcode 1 と RackBarcode 2 の両方にリンクされています。
患者 ID 情報を適切なバーコードに接続したいのですが、そのためには BarCode Assignment テーブルを使用します。もっと良い方法があるかもしれませんので、ご提案をお待ちしています。
私の最終目標は、患者ごとにすべてのサンプル情報を表示するクエリを実行することです。
患者 ID、ラック バーコード 1、チューブ バーコード A1、チューブ バーコード B1、バーコード 2、チューブ バーコード A2、チューブ バーコード B2
答え1
Barcodes
データベース構造の説明から判断すると、テーブルの 2 つの参照 (それぞれに 1 つの参照)を結合する必要があるようですrackbarcode
。
例えば:
select
ba.[patient id],
ba.[rackbarcode 1],
b1.[tube barcode a],
b1.[tube barcode b],
ba.[rackbarcode 2],
b2.[tube barcode a],
b2.[tube barcode b]
from
(
[barcode assignment] ba inner join barcodes b1 on
ba.[rackbarcode 1] = b1.rackbarcode
)
inner join barcodes b2 on
ba.[rackbarcode 2] = b2.rackbarcode
質問内のフィールド名のスペースが一貫しておらず、質問内のさまざまな箇所で異なる名前を使用して同じフィールドを参照しているため、上記の例では正しいフィールド名を使用していることを保証できません。
ba
、b1
& はb2
単なるエイリアスなので、変更する必要がないことに注意してください。