1

誰でもこの環境で私を助けてくれませんか: MS Access 2010, Windows 7 2 つのクエリを接続したい
1) 特定のプログラムのアクティブな人物 (彼女 9)
2) 最後のテストで

追加 1)

SELECT per.perNachname,
       per.perMitgliedsnummer,
       prm.prmID,
       tei.teiangIDRef,
       tei.teiperIDRef,
       prm.prmpdaIDRef,
       prm.prmdegIDRef
FROM ( tblPersonen AS per
       RIGHT JOIN tblTeilnahmen AS tei 
       ON 
       (per.perMitgliedsnummer=tei.teiperIDRef 
        AND  tei.teiangIDRef = 9)
      )
       LEFT JOIN 
       tblPromotionTest  AS prm
       ON 
       prm.prmperIDRef=per.perMitgliedsnummer

これは機能しますが、これの代わりに多くの行が表示されます。すべての人に最後のテストのある行のみを表示するか、この人がテストに合格していない場合は右側に何も表示しないようにします。>>> アイデアは tblPERSON LEFT JOIN tblTEST <<< のようなものです

追加 2)

SELECT p.prmperIDRef,
       p.prmID,
       p.prmpdaIDRef,
       p.prmdegIDRef
FROM tblPromotionTest AS p 
     LEFT JOIN tblPromotionTest AS p2 
     ON (p.prmID < p2.prmID) 
     AND (p.prmperIDRef=p2.prmperIDRef)
     WHERE p2.prmperIDRef Is Null

ベルンハルト様、よろしくお願いいたします。

私は次の回避策を見つけました:

SELECT per.perNachname, per.perVorname, per.perMitgliedsnummer, prm.prmID, prm.prmpdaIDRef, prm.prmdegIDRef

FROM tblPersonen AS per LEFT JOIN tblPromotionTest AS prm ON per.perMitgliedsnummer = prm.prmperIDRef

WHERE prm.prmID IN (
SELECT p.prmID
FROM tblPromotionTest AS p LEFT JOIN tblPromotionTest AS p2 ON (p.prmID < p2.prmID) AND (p.prmperIDRef=p2.prmperIDRef)
WHERE p2.prmperIDRef Is Null)

AND per.perMitgliedsnummer IN 

(
SELECT tei.teiperIDRef
FROM tblPersonen AS per INNER JOIN tblTeilnahmen AS tei ON per.perMitgliedsnummer = tei.teiperIDRef
WHERE (((tei.teiangIDRef)=9))
)

UNION SELECT per.perNachname, per.perVorname, per.perMitgliedsnummer,  prm.prmID, prm.prmpdaIDRef, prm.prmdegIDRef
FROM tblPersonen AS per LEFT JOIN tblPromotionTest AS prm ON per.perMitgliedsnummer = prm.prmperIDRef
WHERE prm.prmID Is Null and per.perMitgliedsnummer IN (SELECT tei.teiperIDRef
FROM tblTeilnahmen as tei
WHERE tei.teiangIDRef=9);
4

0 に答える 0