代码之家  ›  专栏  ›  技术社区  ›  Al Lelopath

使用表中的索引规范化数据

  •  2
  • Al Lelopath  · 技术社区  · 7 年前

    我有一个表(称之为tblContractor)如下:(第一行故意清空):

    ContractorId ContractorName LicenseNumber  
    0  
    1 Smith Inc A12345  
    43 Joe's LLC B4C5t6  
    4 SureFix Co. 77987  
    77 ReadyMix 009ABCV  
    

    还有一个表TBL项目,如下所示:

    ProjectId Name ContractorName ContractorId    
    32  SureFix Co.     NULL   
    40  Joe's LLC   NULL  
    42  ReadyMix    NULL  
    44  Smith Inc   NULL  
    

    我刚刚创建了最后一列ContractorId,因为我想规范化数据, i、 e.仅在TBL承包商中有承包商名称,在TBL项目中有承包商索引。 因此,tblProject将如下所示:

    ProjectId Name ContractorName ContractorId  
    32  SureFix Co      77987  
    40  Joe's LLC   B4C5t6  
    42  ReadyMix    009ABCV  
    44  Smith Inc   A12345  
    

    我该怎么做?

    这就是我迄今为止所做的,但它不起作用:

    SELECT project.ProjectId, project.Name, project.ContractorName, project.ContractorId
    FROM tblProject project 
    WHERE NOT EXISTS  ( 
        SELECT TOP 1 * 
        FROM tblContractor contractor 
        WHERE project.ContractorName = contractor.ContractorName)
    Order by ContractorName
    

    很抱歉设置了表格格式。我看了一些关于SO问题的表格格式问题,我想这真的不是一个好方法。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Daniel Marcus    7 年前

    尝试从以下内容开始移动contractorid数据:

    update a set a.contractorid=b.contractorid from tblProject a
    join tblContractor  b on a.name=b.name