编写此查询的其他方法是什么?
Update TempTableDisplay
SET _cPayment = case When exists(
select Tofield from #UFTFMappingTempTable where ToField='Payment')
then IsNull(S.Payment,0)
else dbo.fnGetMaximum((ISNULL(M.NetTaxDue0,0) + ISNULL(M.NetTaxDue1,0) + ISNULL(M.NetTaxDue2,0) + ISNULL(M.NetTaxDue3,0) + ISNULL(M.NetTaxDue4,0) + ISNULL(M.NetTaxDue5,0) + ISNULL(M.NetTaxDue6,0)),0)
end
答案 0 :(得分:0)
这是另一种方式:
if exists(select Tofield from #UFTFMappingTempTable where ToField='Payment')
begin
Update TempTableDisplay
SET _cPayment = IsNull(S.Payment,0)
end
else
begin
Update TempTableDisplay
set _cPayment = dbo.fnGetMaximum((ISNULL(M.NetTaxDue0,0) + ISNULL(M.NetTaxDue1,0) + ISNULL(M.NetTaxDue2,0) + ISNULL(M.NetTaxDue3,0) + ISNULL(M.NetTaxDue4,0) + ISNULL(M.NetTaxDue5,0) + ISNULL(M.NetTaxDue6,0)),0)
end
但是你可能已经注意到了,你已经省略了很多查询 - 例如“S”或“M”表指的是哪些表?如果没有这些信息,这一切都无法发挥作用。