0

次のような情報を含む3つのテーブルがあります。

ノウズ:

NOEUD   TYPE_MAT   NUM_COL
1        PBT         100
2        AMP         
3        REP    
4        PBP         120

コリン情報:

NUM_COL    INTEREXTER
100            1
120            2

PB:

NOEUD     FORFAIT
1           I
3            
4           E

たとえば、colinfo.num_col = 2 の場合、テーブル PB.forfait を E で更新したいと思います。

私はこのようなことを試みていますが、それでもうまくいきませんでした。Microsoft Access データベースです。

UPDATE pb

inner join (

SELECT noeud, type_mat, n.num_col, c.interexter
FROM noeuds AS n, colinfo AS c
WHERE ((NOEUDS.TYPE_MAT="PBT") Or (NOEUDS.TYPE_MAT="PBP")) 
  And (n.num_col=c.num_col)

) n on pb.noeud=n.noeud

SET (PB.FORFAIT = "E")

WHERE (n.INTEREXTER="2");

前もって感謝します。

4

2 に答える 2

1

どうですか:

UPDATE (PB 
INNER JOIN Noeuds ON PB.NOEUD = Noeuds.NOEUD) 
INNER JOIN ColInfo ON Noeuds.NUM_COL = ColInfo.NUM_COL 
SET PB.FORFAIT = "E"
WHERE (((ColInfo.INTEREXTER)=2));

これは、MS Access の非常に便利なツールであるクエリ デザイン ウィンドウを使用して作成しました。

于 2012-04-13T10:40:32.600 に答える
1

これを試して

UPDATE 
(NOEUDS AS n INNER JOIN COLINFO AS ci ON n.NUM_COL = ci.NUM_COL) 
INNER JOIN PB ON n.NOEUD = PB.NOEUD 
SET PB.FORFAIT = "E"
WHERE (n.TYPE_MAT="PBP" Or n.TYPE_MAT="PBT") 
  AND ci.INTEREXTER=2

ci.INTEREXTERが文字列の場合、使用します

AND ci.INTEREXTER = "2"
于 2012-04-13T10:11:45.073 に答える