--try~~
ALTER   PROCEDURE dbo.FeeCheckoutToDetail AS INSERT INTO dbo.DetailBill
SELECT AA.CallID,BB.BusinessNo, 
   case AA.CallType 
    when 0 then
      case  BB.CallinFeeType
        WHEN 0 THEN AA.FeeTime* BB.CallinPerMinFee
        WHEN 1 THEN AA.FeeTime* BB.CallinPerTimeFee  
     END  
   
  Else         
 
      case  BB.CalloutFeeType
         WHEN 0 THEN AA.FeeTime* BB.CalloutPerMinFee         WHEN 1 THEN AA.FeeTime* BB.CalloutPerTimeFee  
     END    
END
,dbo.GetSimpDate(GETDATE()-1)
FROM  AA,BB
where (AA.Callee=BB.BusinessCallinNo) or  
(AA.Callee=BB.CalloutNo) 
GO

解决方案 »

  1.   

    ALTER PROCEDURE dbo.FeeCheckoutToDetail 
    AS 
    INSERT INTO dbo.DetailBill
    SELECT 
        AA.CallID,
        BB.BusinessNo,
        (CASE AA.CallType WHEN 0   
           THEN
           (CASE BB.CallinFeeType
               WHEN 0 THEN AA.FeeTime* BB.CallinPerMinFee
               WHEN 1 THEN AA.FeeTime* BB.CallinPerTimeFee  
            END)
         ELSE         
            (CASE BB.CalloutFeeType
                WHEN 0 THEN AA.FeeTime* BB.CalloutPerMinFee
        
                WHEN 1 THEN AA.FeeTime* BB.CalloutPerTimeFee  
             END)
         END),
        dbo.GetSimpDate(GETDATE()-1)
    FROM  
        AA,BB
    where 
        AA.Callee = BB.BusinessCallinNo
        or  
        AA.Callee = BB.CalloutNo
    GO
      

  2.   

    ALTER   PROCEDURE dbo.FeeCheckoutToDetail AS INSERT INTO dbo.DetailBill
    SELECT AA.CallID,BB.BusinessNo,
     ( 
      case AA.CallType when 0 then  
        (case  BB.CallinFeeType
            WHEN 0 THEN AA.FeeTime* BB.CallinPerMinFee
            WHEN 1 THEN AA.FeeTime* BB.CallinPerTimeFee  
         END )
      Else         
         (case  BB.CalloutFeeType
             WHEN 0 THEN AA.FeeTime* BB.CalloutPerMinFee         WHEN 1 THEN AA.FeeTime* BB.CalloutPerTimeFee  
         END )
      END)
    ,dbo.GetSimpDate(GETDATE()-1)
    FROM  AA,BB
    where (AA.Callee=BB.BusinessCallinNo) or  
    (AA.Callee=BB.CalloutNo) 
    GO
      

  3.   

    SQL的Select语句中不能用If ...Else
      

  4.   

    YES,将if else 转为,case when .