使用联接进行SQL server更新

使用联接进行SQL server更新,sql,sql-server,Sql,Sql Server,我在SQLServer中使用此命令使用其他表innerjoin中的最大数据更新表 UPDATE dbo.table2 SET table2.LastGrantDate = max(table1.PlannedProjStartDate) from table1 inner join table2 on table2.Serial = table1.FundingEstablish 但它不起作用 只有在我使用它时没

我在SQLServer中使用此命令使用其他表innerjoin中的最大数据更新表

        UPDATE dbo.table2
        SET table2.LastGrantDate = max(table1.PlannedProjStartDate)
        from 
        table1 inner join table2
        on table2.Serial = table1.FundingEstablish
但它不起作用

只有在我使用它时没有MAX()但是


要解决这个问题,您需要使用子查询。这里有一个方法:

    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;

您需要使用子查询。这里有一个方法:

    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;

您需要使用子查询。这里有一个方法:

    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;

您需要使用子查询。这里有一个方法:

    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;
试试这个

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
试试这个

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
试试这个

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
试试这个

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

但是max命令总是会带来一个值。但是max命令总是会带来一个值。但是max命令总是会带来一个值。但是max命令总是会带来一个值。