我有两张桌子。我想用另一个更新一个。 我写了两个查询来向您展示结果。这是我的两个问题
select PrjTermsID,InstNo,InstDesc,BlockID from ProjectPaymentTerms where BlockID=1
select PlotBookingID,InstNo,InstDesc,PrjTermsID from PlotPaymentTerms where PlotBookingID in
( select PlotBookingID from PlotBooking where PlotID in ( select PlotID from PlotMaster where AppartmentBlock=1))
并查看结果
的图片第一个表有1到13个InstNo记录,第二个表有每个PlotBookingID有13个记录。(每个绘图将有13个(所有)付款条件对吗?)。现在我想用第一个表自动生成Id来更新第二个表PlotPaymentTerms
。如果我尝试使用Inner join,它会提供更多结果。如何编写更新查询以更新第二个表?
答案 0 :(得分:1)
update ppt
set ppt.PrjTermsID = pp.PrjTermsID
from PlotPaymentTerms ppt
inner join ProjectPaymentTerms pp on ppt.InstNo = pp.InstNo and ppt.BlockID = 1
inner join PlotBooking pb on ppt.PlotBookingID = pb.PlotBookingID
inner join PlotMaster pm on pb.PlotID = pm.PlotID
where pm.AppartmentBlock = 1
请检查一下。
答案 1 :(得分:0)
我认为这不是正确的做法。无论如何它对我有用。
update ppt set ppt.PrjTermsID = pp.PrjTermsID from PlotPaymentTerms ppt
inner join ProjectPaymentTerms pp on ppt.InstNo = pp.InstNo and pp.BlockID=1
and ppt.PlotBookingID in(select PlotBookingID from PlotBooking where PlotID in ( select PlotID from PlotMaster where AppartmentBlock=1))
向@Mukund致敬