我有一个tableA,其中有两个字段Telephone,CallTime 另一个TableB有三个字段Name,Telephone1和LastCallTime 每当TableB的Telephone1字段与TableA的Telephone字段匹配时,我想从TableA CallTime字段更新TableB LastCallTime字段。 但是有一个问题。 在TableA中,针对同一电话有多个Calltime记录。 即
UPDATE TableA
SET LastCallTime = TableB.CallTime
FROM TableB
WHERE
TableA.Telephone = TableB.Telephone1
答案 0 :(得分:2)
您可以在UPDATE
语句中使用子查询,并使用TOP
获取最新的CallTime
:
UPDATE b
SET b.LastCallTime = (
SELECT TOP 1 CallTime
FROM TableA a
WHERE a.Telephone = b.Telephone
ORDER BY a.CallTime DESC
)
FROM TableB b
答案 1 :(得分:1)
您可以使用join
和聚合:
update b
set lastCallTime = a.callTime
from tableB b join
(select telephone, max(callTime) as callTime
from tablea a
group by telephone
) a
on b.telephone = a.telephone;
答案 2 :(得分:0)
试试这个
Update TABLEB B
set B.lastcalltime= A.calltime
(
select
telephone,
calltime,
from ( select
telephone,
calltime,
ROW_NUMBER() OVER(Order by calltime desc) rnum
from
TABLEA )
where rnum=1
) A
where B.telephone1=A.telephone