0

以下の Access クエリを使用して、「スタック」および「レブ ショメア図書館」に場所を保持している書誌レコードを表示しています。ただし、Access の「and」演算子はレコードを表示せず、「or」演算子は「スタック」の場所を持つすべてのものと「lebh shomea ライブラリ」の場所を持つすべてのものを表示します。両方の場所の (のみ) 所蔵があるレコードが必要です。

SELECT BIB_TEXT.BIB_ID,
       BIB_TEXT.AUTHOR,
       BIB_TEXT.TITLE_BRIEF,
       BIB_TEXT.PUBLISHER_DATE,
       BIB_VW.MFHD_LOCATION
FROM ((((BIB_TEXT
         INNER JOIN BIB_VW ON BIB_TEXT.BIB_ID = BIB_VW.BIB_ID)
        INNER JOIN MFHD_MASTER ON BIB_VW.MFHD_ID = MFHD_MASTER.MFHD_ID)
       INNER JOIN MFHD_HISTORY ON MFHD_MASTER.MFHD_ID = MFHD_HISTORY.MFHD_ID)
      INNER JOIN MFHD_ITEM ON MFHD_MASTER.MFHD_ID = MFHD_ITEM.MFHD_ID)
INNER JOIN BIB_MFHD ON BIB_TEXT.BIB_ID = BIB_MFHD.BIB_ID
WHERE (((BIB_VW.MFHD_LOCATION)="STACKS"
        OR (BIB_VW.MFHD_LOCATION)="LEBH SHOMEA LIBRARY"));
4

1 に答える 1

0

と のレコード間には 1 対多の関係があると思いBIB_TEXTますBIB_VW。その場合は、次のクエリを作成する必要がありますBIB_VW

SELECT BIB_ID 
FROM BIB_VW 
WHERE MFHD_LOCATION="STACKS" OR MFHD_LOCATION="LEBH SHOMEA LIBRARY" 
GROUP BY BIB_ID 
HAVING COUNT(MFHD_LOCATION) = 2

...元のクエリをこのサブクエリへの参照に置き換えBIB_VW、元のクエリのWHERE句を削除します。

于 2013-09-23T22:34:12.960 に答える