如何在表中更新或选择相同的行值?

时间:2009-08-05 13:14:19

标签: ms-access

使用Access 2003

表1

EmpID  Name  city 

101    Raja  Sydney
102    Ram   Melbourne
103    Ravi  Adelaide   
101
102
103

所以......,

我想为空白的Empid's

更新或选择相同的名称,城市

预期产出

EmpID  Name  city 

101    Raja  Sydney
102    Ram   Melbourne
103    Ravi  Adelaide   
101    Raja  Sydney
102    Ram   Melbourne
103    Ravi  Adelaide

所以......,

如何查询此情况?

2 个答案:

答案 0 :(得分:1)

可以在Access中使用子查询进行更新:

UPDATE (
    SELECT tblT.EmpID, tblT.EmpName, tblT.City
    FROM tblT
    WHERE tblT.EmpName Is Null) AS t 
INNER JOIN (
    SELECT tblT.EmpID, tblT.EmpName, tblT.City
    FROM tblT 
    WHERE tblT.EmpName Is Not Null) AS x 
ON t.EmpID = x.EmpID 
SET t.EmpName = [x].[EmpName], t.City = [x].[City];

请注意,查询设计窗口会严重影响布局,并且可以通过将括号()更改为方括号[]来阻止子查询的工作,但是,将SQL粘贴到SQL视图中是安全的,保存然后跑。

答案 1 :(得分:0)

发布的表格没有密钥,违反了first normal form

例如,如果您的表包含此数据:

Table1

EmpID  Name  city 

101    Raja  Sydney
102    Ram   Melbourne
103    Ravi  Adelaide   
101    Ajaa  New York
102    Mar   Des Moines
103    Ivar  Dallas   
101
102
103

...那么你期望这个查询选择102哪个值:墨尔本或得梅因?