0

我有 3 个表,其信息如下:

注意事项:

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

科林福:

NUM_COL    INTEREXTER
100            1
120            2

铅:

NOEUD     FORFAIT
1           I
3            
4           E

例如,在 colinfo.num_col = 2 中,我想用 E 更新表 PB.forfait。

我正在尝试这样的事情,但仍然没有成功。它是一个 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 
(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 回答
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 回答