經典SP

 --select * from ACTTB WHERE TB001='9104' AND TB002='2006090013' 製造費用-電子-折舊費                                         
create      procedure PrintFB_MTTS    @BillNo varchar(20),@BillNa varchar(20) 
as 
-- EXEC  PrintFB '9103','200901093'  
 if @BillNo='9101' 
 begin 
 select TB001,TB002,TB003,TB004,TB005,(x.MA003) as MA003 ,TB007,TB008+TB009 AS TB008,TB010+'--'+TB008+TB009 AS TB010,TB013, 
       floor(TB014*10000)/10000 as TB014,(TB013+convert(varchar(18),TB015)) as TB015,      
 case  when TB017<>'' THEN TB017  when substring(y.MA003,3,1)='-' then substring(y.MA003,4,40) 
       when substring(y.MA003,4,1)='-' then substring(y.MA003,5,4) when substring(y.MA003,5,1)='-' then substring(y.MA003,6,40) 
       when substring(y.MA003,6,1)='-' then substring(y.MA003,7,40) when substring(y.MA003,7,1)='-' then substring(y.MA003,8,40) 
       when substring(y.MA003,8,1)='-' then substring(y.MA003,9,40) when substring(y.MA003,9,1)='-' then substring(y.MA003,10,40) 
 
 end as TB017, 
 
 case  when TB004='1' THEN  TB007 end as TB007a, 
 case  when TB004='-1' THEN TB007 end as TB007b, 
 case  when TB004='1' THEN (  case  when substring(convert(varchar(20),TB007),16,1)<>'' and  substring(convert(varchar(20),TB007),16,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),13,1) 
                    +space(1)+substring(convert(varchar(20),TB007),15,1)+space(1)+substring(convert(varchar(20),TB007),16,1) 
 
      when substring(convert(varchar(20),TB007),15,1)<>'' and  substring(convert(varchar(20),TB007),15,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),14,1) 
                    +space(1)+substring(convert(varchar(20),TB007),15,1) 
      when substring(convert(varchar(20),TB007),14,1)<>'' and  substring(convert(varchar(20),TB007),14,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1)  
        +space(1)+substring(convert(varchar(20),TB007),11,1)          
                    +space(1)+substring(convert(varchar(20),TB007),13,1)+space(1)+substring(convert(varchar(20),TB007),14,1) 
      when substring(convert(varchar(20),TB007),13,1)<>'' and  substring(convert(varchar(20),TB007),13,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),13,1) 
      when substring(convert(varchar(20),TB007),12,1)<>'' and  substring(convert(varchar(20),TB007),12,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
      when substring(convert(varchar(20),TB007),11,1)<>'' and  substring(convert(varchar(20),TB007),11,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)               
       when substring(convert(varchar(20),TB007),10,1)<>'' and  substring(convert(varchar(20),TB007),10,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)          
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
 
       when substring(convert(varchar(20),TB007),9,1)<>'' and  substring(convert(varchar(20),TB007),9,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),8,1)    
                    +space(1)+substring(convert(varchar(20),TB007),9,1) 
 
       when substring(convert(varchar(20),TB007),8,1)<>'' and  substring(convert(varchar(20),TB007),8,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                   +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),7,1)  
                    +space(1)+substring(convert(varchar(20),TB007),8,1)           
                    
       when substring(convert(varchar(20),TB007),7,1)<>'' and  substring(convert(varchar(20),TB007),7,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),6,1)  
                    +space(1)+substring(convert(varchar(20),TB007),7,1)           
     
       when substring(convert(varchar(20),TB007),6,1)<>'' and  substring(convert(varchar(20),TB007),6,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),5,1) 
                    +space(1)+substring(convert(varchar(20),TB007),6,1) 
                    
       when substring(convert(varchar(20),TB007),5,1)<>'' and  substring(convert(varchar(20),TB007),5,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1) 
                    
       when substring(convert(varchar(20),TB007),4,1)<>'' and  substring(convert(varchar(20),TB007),4,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),3,1) 
                    +space(1)+substring(convert(varchar(20),TB007),4,1) 
 
       when substring(convert(varchar(20),TB007),3,1)<>'' and  substring(convert(varchar(20),TB007),3,1) is not null  
            then '$'+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1) 
       when substring(convert(varchar(20),TB007),2,1)<>'' and  substring(convert(varchar(20),TB007),2,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                   
       when substring(convert(varchar(20),TB007),1,1)<>'' and  substring(convert(varchar(20),TB007),1,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1) 
 
 end )  END as  TB007A, 
 case  when TB004='-1' THEN (  case  when substring(convert(varchar(20),TB007),16,1)<>'' and  substring(convert(varchar(20),TB007),16,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),13,1) 
                    +space(1)+substring(convert(varchar(20),TB007),15,1)+space(1)+substring(convert(varchar(20),TB007),16,1) 
 
      when substring(convert(varchar(20),TB007),15,1)<>'' and  substring(convert(varchar(20),TB007),15,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),14,1) 
                    +space(1)+substring(convert(varchar(20),TB007),15,1) 
      when substring(convert(varchar(20),TB007),14,1)<>'' and  substring(convert(varchar(20),TB007),14,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)          
                    +space(1)+substring(convert(varchar(20),TB007),13,1)+space(1)+substring(convert(varchar(20),TB007),14,1) 
      when substring(convert(varchar(20),TB007),13,1)<>'' and  substring(convert(varchar(20),TB007),13,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),13,1) 
      when substring(convert(varchar(20),TB007),12,1)<>'' and  substring(convert(varchar(20),TB007),12,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
      when substring(convert(varchar(20),TB007),11,1)<>'' and  substring(convert(varchar(20),TB007),11,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)               
       when substring(convert(varchar(20),TB007),10,1)<>'' and  substring(convert(varchar(20),TB007),10,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)          
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
 
       when substring(convert(varchar(20),TB007),9,1)<>'' and  substring(convert(varchar(20),TB007),9,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),8,1)          
                    +space(1)+substring(convert(varchar(20),TB007),9,1) 
 
       when substring(convert(varchar(20),TB007),8,1)<>'' and  substring(convert(varchar(20),TB007),8,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                   +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),7,1)  
                    +space(1)+substring(convert(varchar(20),TB007),8,1)           
                    
       when substring(convert(varchar(20),TB007),7,1)<>'' and  substring(convert(varchar(20),TB007),7,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),6,1)  
                    +space(1)+substring(convert(varchar(20),TB007),7,1)           
     
       when substring(convert(varchar(20),TB007),6,1)<>'' and  substring(convert(varchar(20),TB007),6,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),5,1) 
                    +space(1)+substring(convert(varchar(20),TB007),6,1) 
                    
       when substring(convert(varchar(20),TB007),5,1)<>'' and  substring(convert(varchar(20),TB007),5,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1) 
                    
       when substring(convert(varchar(20),TB007),4,1)<>'' and  substring(convert(varchar(20),TB007),4,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),3,1) 
                    +space(1)+substring(convert(varchar(20),TB007),4,1) 
 
       when substring(convert(varchar(20),TB007),3,1)<>'' and  substring(convert(varchar(20),TB007),3,1) is not null  
            then '$'+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1) 
       when substring(convert(varchar(20),TB007),2,1)<>'' and  substring(convert(varchar(20),TB007),2,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                   
       when substring(convert(varchar(20),TB007),1,1)<>'' and  substring(convert(varchar(20),TB007),1,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1) 
 
 end  ) END as TB007B 
 
from ACTTA INNER JOIN ACTTB ON TA001=TB001 AND TA002=TB002 
inner join ACTMA y ON y.MA001=TB005   
left  join ACTMA x on x.MA001=substring(TB005,1,4)  WHERE TA001=@BillNo AND TA002=@BillNa 
 
end 
 
 if @BillNo='9103' or @BillNo='9104' 
 begin 
 select TB001,TB002,TB003,TB004,TB005,(x.MA003) as MA003 ,CASE when TB001=9104 and TB004=1 and  
        substring(TB005,1,4)='5503' then -TB007 else TB007 end as  
        TB007,TB008+TB009 AS TB008,TB010+'--'+TB008+TB009 AS TB010,TB013, 
        floor(TB014*10000)/10000 as TB014,(TB013+convert(varchar(18),TB015)) as TB015, 
 case  when TB017<>''  THEN TB017  when substring(y.MA003,3,1)='-' then substring(y.MA003,4,40) 
       when substring(y.MA003,4,1)='-' then substring(y.MA003,5,40) when substring(y.MA003,5,1)='-' then substring(y.MA003,6,40) 
       when substring(y.MA003,6,1)='-' then substring(y.MA003,7,40) when substring(y.MA003,7,1)='-' then substring(y.MA003,8,40) 
       when substring(y.MA003,8,1)='-' then substring(y.MA003,9,40) when substring(y.MA003,9,1)='-' then substring(y.MA003,10,40) 
 
 end as TB017, 
 
 case  when TB004='1' THEN  TB007 end as TB007a, 
 case  when TB004='-1' THEN TB007 end as TB007b, 
 case  when TB004='1' THEN (  case  when substring(convert(varchar(20),TB007),16,1)<>'' and  substring(convert(varchar(20),TB007),16,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),13,1) 
                    +space(1)+substring(convert(varchar(20),TB007),15,1)+space(1)+substring(convert(varchar(20),TB007),16,1) 
 
      when substring(convert(varchar(20),TB007),15,1)<>'' and  substring(convert(varchar(20),TB007),15,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),14,1) 
                    +space(1)+substring(convert(varchar(20),TB007),15,1) 
      when substring(convert(varchar(20),TB007),14,1)<>'' and  substring(convert(varchar(20),TB007),14,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)          
                    +space(1)+substring(convert(varchar(20),TB007),13,1)+space(1)+substring(convert(varchar(20),TB007),14,1) 
      when substring(convert(varchar(20),TB007),13,1)<>'' and  substring(convert(varchar(20),TB007),13,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),13,1) 
      when substring(convert(varchar(20),TB007),12,1)<>'' and  substring(convert(varchar(20),TB007),12,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
      when substring(convert(varchar(20),TB007),11,1)<>'' and  substring(convert(varchar(20),TB007),11,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)       
       when substring(convert(varchar(20),TB007),10,1)<>'' and  substring(convert(varchar(20),TB007),10,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)          
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
 
       when substring(convert(varchar(20),TB007),9,1)<>'' and  substring(convert(varchar(20),TB007),9,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),8,1)          
                    +space(1)+substring(convert(varchar(20),TB007),9,1) 
 
       when substring(convert(varchar(20),TB007),8,1)<>'' and  substring(convert(varchar(20),TB007),8,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                   +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),7,1)  
                    +space(1)+substring(convert(varchar(20),TB007),8,1)           
                    
       when substring(convert(varchar(20),TB007),7,1)<>'' and  substring(convert(varchar(20),TB007),7,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),6,1)  
                    +space(1)+substring(convert(varchar(20),TB007),7,1)           
     
       when substring(convert(varchar(20),TB007),6,1)<>'' and  substring(convert(varchar(20),TB007),6,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),5,1) 
                    +space(1)+substring(convert(varchar(20),TB007),6,1) 
                    
       when substring(convert(varchar(20),TB007),5,1)<>'' and  substring(convert(varchar(20),TB007),5,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1) 
                    
       when substring(convert(varchar(20),TB007),4,1)<>'' and  substring(convert(varchar(20),TB007),4,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),3,1) 
                    +space(1)+substring(convert(varchar(20),TB007),4,1) 
 
       when substring(convert(varchar(20),TB007),3,1)<>'' and  substring(convert(varchar(20),TB007),3,1) is not null  
            then '$'+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1) 
       when substring(convert(varchar(20),TB007),2,1)<>'' and  substring(convert(varchar(20),TB007),2,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                   
       when substring(convert(varchar(20),TB007),1,1)<>'' and  substring(convert(varchar(20),TB007),1,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1) 
 
 end )  END as  TB007A, 
 case  when (TB004='-1') THEN (  case  when substring(convert(varchar(20),TB007),16,1)<>'' and  substring(convert(varchar(20),TB007),16,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),13,1) 
                    +space(1)+substring(convert(varchar(20),TB007),15,1)+space(1)+substring(convert(varchar(20),TB007),16,1) 
 
      when substring(convert(varchar(20),TB007),15,1)<>'' and  substring(convert(varchar(20),TB007),15,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),14,1) 
                    +space(1)+substring(convert(varchar(20),TB007),15,1) 
      when substring(convert(varchar(20),TB007),14,1)<>'' and  substring(convert(varchar(20),TB007),14,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)          
                    +space(1)+substring(convert(varchar(20),TB007),13,1)+space(1)+substring(convert(varchar(20),TB007),14,1) 
      when substring(convert(varchar(20),TB007),13,1)<>'' and  substring(convert(varchar(20),TB007),13,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),12,1)           
                    +space(1)+substring(convert(varchar(20),TB007),13,1) 
      when substring(convert(varchar(20),TB007),12,1)<>'' and  substring(convert(varchar(20),TB007),12,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),9,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)+space(1)+substring(convert(varchar(20),TB007),12,1)           
      when substring(convert(varchar(20),TB007),11,1)<>'' and  substring(convert(varchar(20),TB007),11,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)+space(1)+substring(convert(varchar(20),TB007),8,1)           
                    +space(1)+substring(convert(varchar(20),TB007),10,1) 
                    +space(1)+substring(convert(varchar(20),TB007),11,1)               
       when substring(convert(varchar(20),TB007),10,1)<>'' and  substring(convert(varchar(20),TB007),10,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),7,1)          
                    +space(1)+substring(convert(varchar(20),TB007),9,1)+space(1)+substring(convert(varchar(20),TB007),10,1) 
 
       when substring(convert(varchar(20),TB007),9,1)<>'' and  substring(convert(varchar(20),TB007),9,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),6,1) 
                    +space(1)+substring(convert(varchar(20),TB007),8,1)          
                    +space(1)+substring(convert(varchar(20),TB007),9,1) 
 
       when substring(convert(varchar(20),TB007),8,1)<>'' and  substring(convert(varchar(20),TB007),8,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                   +space(1)+substring(convert(varchar(20),TB007),5,1)+space(1)+substring(convert(varchar(20),TB007),7,1)  
                    +space(1)+substring(convert(varchar(20),TB007),8,1)           
  
       when substring(convert(varchar(20),TB007),7,1)<>'' and  substring(convert(varchar(20),TB007),7,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),6,1)  
                    +space(1)+substring(convert(varchar(20),TB007),7,1)           
     
       when substring(convert(varchar(20),TB007),6,1)<>'' and  substring(convert(varchar(20),TB007),6,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1)+space(1)+substring(convert(varchar(20),TB007),5,1) 
                    +space(1)+substring(convert(varchar(20),TB007),6,1) 
                    
       when substring(convert(varchar(20),TB007),5,1)<>'' and  substring(convert(varchar(20),TB007),5,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),4,1) 
                    +space(1)+substring(convert(varchar(20),TB007),5,1) 
                    
       when substring(convert(varchar(20),TB007),4,1)<>'' and  substring(convert(varchar(20),TB007),4,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),3,1) 
                    +space(1)+substring(convert(varchar(20),TB007),4,1) 
 
       when substring(convert(varchar(20),TB007),3,1)<>'' and  substring(convert(varchar(20),TB007),3,1) is not null  
            then '$'+substring(convert(varchar(20),TB007),2,1) 
                    +space(1)+substring(convert(varchar(20),TB007),3,1) 
       when substring(convert(varchar(20),TB007),2,1)<>'' and  substring(convert(varchar(20),TB007),2,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1)+space(1)+substring(convert(varchar(20),TB007),2,1) 
                   
       when substring(convert(varchar(20),TB007),1,1)<>'' and  substring(convert(varchar(20),TB007),1,1) is not null  
            then '$'+space(1)+substring(convert(varchar(20),TB007),1,1) 
 
 end  ) END as TB007B 
 
from ACTTA INNER JOIN ACTTB ON TA001=TB001 AND TA002=TB002 
inner  join ACTMA  y ON y.MA001=TB005    
left   join ACTMA  x on x.MA001=substring(TB005,1,4) WHERE TA001=@BillNo AND TA002=@BillNa 
 and  ( TB004=( case when TB001='9103' then '1' 
                 when TB001='9104' then '-1' else '0' end ) OR substring(TB005,1,4)='5503' ) 
 
end 
 
 
---------------------------------------------------------------------------------------------------------------------- 
 
/* 
--MODI BY 張曉鵬 
--MODI DATE:2009-1-19 
--修改打印憑證金額加空格部分,採取判斷金額位數循環加上空格代替 
 
--select * from ACTTB WHERE TB001='9103' AND TB002='200901093' 製造費用-電子-折舊費                                         
 
alter     procedure PrintFB @BillNo varchar(20),@BillNa varchar(20) 
as 
-- EXEC  PrintFB '9101','200812486'  
 
DECLARE     
@I INT,@RES VARCHAR(20),@TB007R varchar(20),@RES2 VARCHAR(20),@TB007R2 varchar(20), 
@RES3 VARCHAR(20),@TB007R3 varchar(20),@RES4 VARCHAR(20),@TB007R4 varchar(20) 
            
    SET @I=0 
    SET @RES='' 
    SET @RES2='' 
    SET @RES3='' 
    SET @RES4='' 
 
     
 SELECT @TB007R=TB007   
 from ACTTA INNER JOIN ACTTB ON TA001=TB001 AND TA002=TB002 
 inner join ACTMA y ON y.MA001=TB005   
 left  join ACTMA x on x.MA001=substring(TB005,1,4)   
 WHERE TA001=@BillNo AND TA002=@BillNa and TB004='1' 
 
 
 WHILE @I<=LEN(@TB007R)-4 
 BEGIN 
  SET @RES=@RES+' '+(SUBSTRING(@TB007R,@I+1,1))  
  SET @I=@I+1 
 END  
  SET @RES='$'+@RES+' '+(SUBSTRING(@TB007R,LEN(@TB007R)-1,1)) 
     +' '+(SUBSTRING(@TB007R,LEN(@TB007R),1)) 
 
 
--此處如何解決有兩條貸方記錄存放在一個變量中 
 SELECT @TB007R2=TB007 
 from ACTTA INNER JOIN ACTTB ON TA001=TB001 AND TA002=TB002 
 inner join ACTMA y ON y.MA001=TB005   
 left  join ACTMA x on x.MA001=substring(TB005,1,4)   
 WHERE TA001=@BillNo AND TA002=@BillNa and TB004='-1' 
 
 WHILE @I<=LEN(@TB007R2) 
 BEGIN 
  SET @RES2=@RES2+' '+(SUBSTRING(@TB007R2,@I+1,1))  
  SET @I=@I+1 
 END  
  SET @RES2='$'+@RES2+' '+(SUBSTRING(@TB007R2,LEN(@TB007R2)-1,1)) 
     +' '+(SUBSTRING(@TB007R2,LEN(@TB007R2),1)) 
 
PRINT @RES+' '+@RES2 
 
 if @BillNo='9101' 
 begin 
 select TB001,TB002,TB003,TB004,TB005,(x.MA003) as MA003 ,TB007,TB008+TB009 AS TB008,TB010+'--'+TB008+TB009 AS TB010,TB013, 
       floor(TB014*10000)/10000 as TB014,(TB013+convert(varchar(18),TB015)) as TB015,      
 case  when TB017<>'' THEN TB017  when substring(y.MA003,3,1)='-' then substring(y.MA003,4,40) 
       when substring(y.MA003,4,1)='-' then substring(y.MA003,5,4) when substring(y.MA003,5,1)='-' then substring(y.MA003,6,40) 
       when substring(y.MA003,6,1)='-' then substring(y.MA003,7,40) when substring(y.MA003,7,1)='-' then substring(y.MA003,8,40) 
       when substring(y.MA003,8,1)='-' then substring(y.MA003,9,40) when substring(y.MA003,9,1)='-' then substring(y.MA003,10,40) 
 
 end as TB017, 
 
 case  when TB004='1' THEN  TB007 end as TB007a, 
 case  when TB004='-1' THEN TB007 end as TB007b, 
 case  when TB004='1' THEN @RES  END as  TB007A, 
 case  when TB004='-1' THEN @RES2 END as TB007B 
 
from ACTTA INNER JOIN ACTTB ON TA001=TB001 AND TA002=TB002 
inner join ACTMA y ON y.MA001=TB005   
left  join ACTMA x on x.MA001=substring(TB005,1,4)   
WHERE TA001=@BillNo AND TA002=@BillNa 
 
end 
 
 
 SELECT @TB007R3=TB007   
from ACTTA INNER JOIN ACTTB ON TA001=TB001 AND TA002=TB002 
inner  join ACTMA  y ON y.MA001=TB005    
left   join ACTMA  x on x.MA001=substring(TB005,1,4) WHERE TA001=@BillNo AND TA002=@BillNa  
 and  ( TB004=( case when TB001='9103' then '1' 
                 when TB001='9104' then '-1' else '0' end ) OR substring(TB005,1,4)='5503' ) 
 
 WHILE @I<=LEN(@TB007R3)-4 
 BEGIN 
  SET @RES3=@RES3+' '+(SUBSTRING(@TB007R3,@I+1,1))  
  SET @I=@I+1 
 END  
  SET @RES3='$'+@RES3+' '+(SUBSTRING(@TB007R3,LEN(@TB007R3)-1,1)) 
     +' '+(SUBSTRING(@TB007R3,LEN(@TB007R3),1)) 
 
 
 SELECT @TB007R4=TB007   
from ACTTA INNER JOIN ACTTB ON TA001=TB001 AND TA002=TB002 
inner  join ACTMA  y ON y.MA001=TB005    
left   join ACTMA  x on x.MA001=substring(TB005,1,4) WHERE TA001=@BillNo AND TA002=@BillNa AND  
 and  ( TB004=( case when TB001='9103' then '1' 
                 when TB001='9104' then '-1' else '0' end ) OR substring(TB005,1,4)='5503' ) 
 
 WHILE @I<=LEN(@TB007R4)-4 
 BEGIN 
  SET @RES4=@RES4+' '+(SUBSTRING(@TB007R4,@I+1,1))  
  SET @I=@I+1 
 END  
  SET @RES4='$'+@RES4+' '+(SUBSTRING(@TB007R4,LEN(@TB007R4)-1,1)) 
     +' '+(SUBSTRING(@TB007R4,LEN(@TB007R4),1)) 
 
 if @BillNo='9103' or @BillNo='9104' 
 begin 
 select TB001,TB002,TB003,TB004,TB005,(x.MA003) as MA003 ,CASE when TB001=9104 and TB004=1 and  
        substring(TB005,1,4)='5503' then -TB007 else TB007 end as  
        TB007,TB008+TB009 AS TB008,TB010+'--'+TB008+TB009 AS TB010,TB013, 
        floor(TB014*10000)/10000 as TB014,(TB013+convert(varchar(18),TB015)) as TB015, 
 case  when TB017<>''  THEN TB017  when substring(y.MA003,3,1)='-' then substring(y.MA003,4,40) 
       when substring(y.MA003,4,1)='-' then substring(y.MA003,5,40) when substring(y.MA003,5,1)='-' then substring(y.MA003,6,40) 
       when substring(y.MA003,6,1)='-' then substring(y.MA003,7,40) when substring(y.MA003,7,1)='-' then substring(y.MA003,8,40) 
       when substring(y.MA003,8,1)='-' then substring(y.MA003,9,40) when substring(y.MA003,9,1)='-' then substring(y.MA003,10,40) 
 
 end as TB017, 
 
 case  when TB004='1' THEN  TB007 end as TB007a, 
 case  when TB004='-1' THEN TB007 end as TB007b, 
 case  when TB004='1' THEN @RES3  END as  TB007A, 
 case  when (TB004='-1') THEN @RES4 END as TB007B 
 
from ACTTA INNER JOIN ACTTB ON TA001=TB001 AND TA002=TB002 
inner  join ACTMA  y ON y.MA001=TB005    
left   join ACTMA  x on x.MA001=substring(TB005,1,4) WHERE TA001=@BillNo AND TA002=@BillNa 
 and  ( TB004=( case when TB001='9103' then '1' 
                 when TB001='9104' then '-1' else '0' end ) OR substring(TB005,1,4)='5503' ) 
 
end 
*/ 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章