SQL Server使用JOIN更新

时间:2015-07-27 11:51:45

标签: sql sql-server

我在Sql Server中使用此命令使用其他表innerjoin

中的最大数据更新表
        UPDATE dbo.table2
        SET table2.LastGrantDate = max(table1.PlannedProjStartDate)
        from 
        table1 inner join table2
        on table2.Serial = table1.FundingEstablish

但它不起作用

只有在没有MAX()但

的情况下才能使用它

任何解决这个问题的方法??

2 个答案:

答案 0 :(得分:3)

您需要使用子查询。这是一种方式:

    UPDATE t2
    SET t2.LastGrantDate = t1.maxppsd
    from table2 t2 inner join
         (select FundingEstablish, max(PlannedProjStartDate) as maxppsd
          from table1
          group by FundingEstablish
         ) t1
         on t2.Serial = t1.FundingEstablish;

答案 1 :(得分:0)

试试这个

UPDATE t2
        SET t2.LastGrantDate = t1.PlannedProjStartDate
        from 
        table1 as t1 inner join 
(select FundingEstablish,max(PlannedProjStartDate) as PlannedProjStartDate
from table2 group by FundingEstablish) as t2
        on t2.Serial = t1.FundingEstablish