0

编写此查询的其他方法是什么?

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
4

1 回答 1

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”指的是哪些表?没有这些信息,这一切都不会奏效。

于 2012-12-22T21:14:46.890 回答