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 に答える