Свяжите два поля в одной таблице с одним полем во второй таблице и создайте запрос в Access

Свяжите два поля в одной таблице с одним полем во второй таблице и создайте запрос в Access

Я не уверен, возможно ли это сделать в Access; я гуглил форумы и пока не нашел работающего решения...

По сути, есть список пациентов, которые сдают несколько образцов крови в разное время. Каждый образец собирается и регистрируется с помощью штрих-кода стойки. Каждый штрих-код стойки (образец) имеет несколько штрих-кодов пробирки (частей образца)

У меня есть база данных, состоящая из трех таблиц.

Информация об идентификаторе: Информация о пациенте (идентификатор пациента, демографическая информация)

штрих-коды: список всех образцов, собранных для любого пациента (штрих-код стойки; штрих-код пробирки a; штрих-код пробирки b)

Назначение штрихкода: штрихкоды стоек из таблицы штрихкодов, назначенные каждому пациенту. (Идентификатор пациента, штрихкод стойки 1, штрихкод стойки2) Штрихкод стойки 1 — это образец, собранный в момент времени 1, а штрихкод стойки 2 — это образец, собранный для того же пациента в момент времени 2. Штрихкод стойки 1 и штрихкод стойки 2 могут быть найдены как «штрихкод стойки» в таблице штрихкодов.

У меня есть внутреннее соединение между информацией об идентификаторе и назначениями штрихкода с идентификатором пациента. У меня есть 2 внешних соединения между штрихкодами и назначениями штрихкода. rackbarcode из таблицы штрихкодов связан как с RackBarcode 1, так и с RackBarcode 2 в таблице назначений штрихкода.

Я хочу связать информацию об идентификаторе пациента с соответствующими штрихкодами, для чего я использую таблицу BarCode Assignment. Возможно, есть лучший способ сделать это, и я открыт для предложений.

Моя конечная цель — выполнить запрос, который покажет мне всю выборочную информацию по пациенту:

ID пациента; Штрих-код стойки 1; Штрих-код пробирки A1; Штрих-код пробирки B1; Штрих-код 2; Штрих-код пробирки A2; Штрих-код пробирки B2

решение1

Из вашего описания структуры базы данных следует, что вам нужно выполнить соединение с двумя ссылками таблицы Barcodes, по одной ссылке на каждую 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— это всего лишь псевдонимы, и их не нужно менять.

Связанный контент