2006年11月06日
2006年09月28日

/* 机构条件 */
   if (!paraComCode.equals("")) {
    strCommonCondition += "  AND ComCode =’" + paraComCode + "’";
   }
            /* 取得险种大类、险类、险种三者的最小 */
   if (!paraRiskCatagory.equals("") && paraRiskCatagory != null) {
    if (!paraClassCode.equals("") && paraClassCode != null) {
     if (!paraRiskCode.equals("") && paraRiskCode != null) {
      strCommonCondition += " AND RiskCode =’" + paraRiskCode + "’";
      paraRiskCatagory = "";
      paraClassCode = "";
      
     } else {
      strCommonCondition += " AND ClassCode =’" + paraClassCode + "’";
      paraRiskCatagory = "";
     }
    } else if (!paraRiskCode.equals("") && paraRiskCode != null) {
     strCommonCondition += " AND RiskCode =’" + paraRiskCode + "’";
     paraRiskCatagory = "";
     paraClassCode = "";
    } else {
     strCommonCondition += " AND RiskCatagory =’" + paraRiskCatagory + "’";
    }
   } else if (!paraClassCode.equals("") && paraClassCode != null) {
    if (!paraRiskCode.equals("") && paraRiskCode != null) {
     strCommonCondition += " AND RiskCode =’" + paraRiskCode + "’";
     paraRiskCatagory = "";
     paraClassCode = "";
    } else {
     strCommonCondition += " AND ClassCode =’" + paraClassCode + "’";
     paraRiskCatagory = "";
    }
   } else {
    strCommonCondition += " AND RiskCode =’" + paraRiskCode + "’";
    paraRiskCatagory = "";
    paraClassCode = "";
   }

Select comcode,RiskCatagory,riskcode,ClassCode,AccidentMonth , sum(cdfIBNR ),Sum(cdfOutIBNR),sum(rectifyIBNR),Sum(rectifyOutIBNR),Sum(mediumCaseIBNR),Sum(mediumOutCaseIBNR),Sum(prepaidRateIBNR),Sum(prepaidOutRateIBNR)
from (
select  comcode,RiskCatagory,riskcode,ClassCode,AccidentMonth,sum(decode(drawway,1,sumpaid)) as cdfIBNR,0  as cdfOutIBNR ,
sum(decode(drawway,2,sumpaid)) as rectifyIBNR,0  as rectifyOutIBNR,sum(decode(drawway,3,sumpaid)) as mediumCaseIBNR,0  as mediumOutCaseIBNR ,sum(decode(drawway,5,sumpaid)) as prepaidRateIBNR,0  as prepaidOutRateIBNR
from PrpLRForecast where payflag=’41′
Group  by  comcode,RiskCatagory,riskcode,ClassCode,AccidentMonth
UNION
select  comcode,RiskCatagory,riskcode,ClassCode,AccidentMonth,0  as cdfIBNR ,sum(decode(drawway,1,sumpaid)) as cdfOutIBNR ,
sum(decode(drawway,2,sumpaid)) as rectifyIBNR,0  as rectifyOutIBNR,sum(decode(drawway,3,sumpaid)) as mediumCaseIBNR,0  as mediumOutCaseIBNR ,sum(decode(drawway,5,sumpaid)) as prepaidRateIBNR,0  as prepaidOutRateIBNR
from PrpLRForecast
where payflag=’4′
Group  by  comcode,RiskCatagory,riskcode,ClassCode,AccidentMonth
)
Group  by  comcode,RiskCatagory,riskcode,ClassCode,AccidentMonth

2006年09月21日

substr

取部份字符串。

语法: string substr(string string, int start, int [length]);

返回值: 字符串

函数种类: 资料处理

 

 
内容说明

本函数将字符串 string 的第 start 位起的字符串取出 length 个字符。若 start 为负数,则从字符串尾端算起。若可省略的参数 length 存在,但为负数,则表示取到倒数第 length 个字符。

 

 
使用范例

<?
echo substr("abcdef"13);  // 返回 "bcd"
echo substr("abcdef", -2);    // 返回 "ef"
echo substr("abcdef", -31); // 返回 "d"
echo substr("abcdef"1, -1); // 返回 "bcde"
?>

String strAccidentMonth = rs.getString("AccidentMonth");
    String strYear = strAccidentMonth.substring(0,4);
    int intMonth = Integer.parseInt(strAccidentMonth.substring(4,6));
    if(paraStatisWay.equals("1"))
               {
                  prpLRPrepareDto.setAccidentMonth(strAccidentMonth);
                 }
                  else if(paraStatisWay.equals("3"))
    {  
                  if(intMonth>=1&&intMonth<=3)
                     {  
                     prpLRPrepareDto.setAccidentMonth(strYear+"Q1"); 
                      }
                    else if(intMonth>=4&&intMonth<=6)
                        {   
                      prpLRPrepareDto.setAccidentMonth(strYear+"Q2"); 
                        }
         else if(intMonth>=7&&intMonth<=9)
                       {   
                      prpLRPrepareDto.setAccidentMonth(strYear+"Q3"); 
                       }
          else if(intMonth>=10&&intMonth<=12)
                    {   
                       prpLRPrepareDto.setAccidentMonth(strYear+"Q4"); 
                    }
     }
      else if(paraStatisWay.equals("6"))
               { 
     if(intMonth>=1&&intMonth<7)
                    {  
                    prpLRPrepareDto.setAccidentMonth(strYear+"H1"); 
                     }
      else if(intMonth>7&&intMonth<=12)
                     {   
                   prpLRPrepareDto.setAccidentMonth(strYear+"H2"); 
                     }
    }
                 else if(paraStatisWay.equals("12"))
                  { 
                  prpLRPrepareDto.setAccidentMonth(strYear);
    }

如何将字串 String 转换成整数 int?

A. 有两个方法:

1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue();

注: 字串转成 Double, Float, Long 的方法大同小异.

5.2 如何将整数 int 转换成字串 String ?

A. 有叁种方法:

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i);

3.) String s = "" + i;

注: Double, Float, Long 转成字串的方法大同小异.

substring 方法

返回位于 String 对象中指定位置的子字符串。

strVariable.substring(start, end)
"String Literal".substring(start, end)

参数

start

指明子字符串的起始位置,该索引从 0 开始起算。

end

指明子字符串的结束位置,该索引从 0 开始起算。

说明

substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。

substring 方法使用 startend 两者中的较小值作为子字符串的起始点。例如, strvar.substring(0, 3)strvar.substring(3, 0) 将返回相同的子字符串。

如果 startendNaN 或者负数,那么将其替换为0。

子字符串的长度等于 startend 之差的绝对值。例如,在 strvar.substring(0, 3)strvar.substring(3, 0) 返回的子字符串的的长度是 3。

示例

下面的示例演示了 substring 方法的用法。

function SubstringDemo(){
   var ss;                         // 声明变量。
   var s = "The rain in Spain falls mainly in the plain..";
   ss = s.substring(12, 17);   // 取子字符串。
   return(ss);                     // 返回子字符串。
2006年09月18日

    DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能。DECODE有什么用途呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%;工资在8000元以上的加15%,通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的流控制语句进行判断。 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。如下:select decode(sign(salary – 8000),1,salary*1.15,-1,salary*1.2,salary from employee 是不是很简洁? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,…,else),表示如果value等于if1时,DECODE函数的结果返回then1,…,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。

  decode()函数使用技巧

  ·软件环境:

  1、Windows NT4.0+ORACLE 8.0.4

  2、ORACLE安装路径为:C:\ORANT

  ·含义解释:

  decode(条件,值1,翻译值1,值2,翻译值2,…值n,翻译值n,缺省值)

  该函数的含义如下:

  IF 条件=值1 THEN

  RETURN(翻译值1)

  ELSIF 条件=值2 THEN

  RETURN(翻译值2)

  ……

  ELSIF 条件=值n THEN

  RETURN(翻译值n)

  ELSE

  RETURN(缺省值)

  END IF

  · 使用方法:

  1、比较大小

  select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; –取较小值

  sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

  例如:

  变量1=10,变量2=20

  则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

  2、表、视图结构转化

  现有一个商品销售表sale,表结构为:

  month    char(6)      –月份

  sell    number(10,2)   –月销售金额

  现有数据为:

  200001  1000

  200002  1100

  200003  1200

  200004  1300

  200005  1400

  200006  1500

  200007  1600

  200101  1100

  200202  1200

  200301  1300

  想要转化为以下结构的数据:

  year   char(4)      –年份

  month1  number(10,2)   –1月销售金额

  month2  number(10,2)   –2月销售金额

  month3  number(10,2)   –3月销售金额

  month4  number(10,2)   –4月销售金额

  month5  number(10,2)   –5月销售金额

  month6  number(10,2)   –6月销售金额

  month7  number(10,2)   –7月销售金额

  month8  number(10,2)   –8月销售金额

  month9  number(10,2)   –9月销售金额

  month10  number(10,2)   –10月销售金额

  month11  number(10,2)   –11月销售金额

  month12  number(10,2)   –12月销售金额

  结构转化的SQL语句为:

  create or replace view

  v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)

  as

  select

  substrb(month,1,4),

  sum(decode(substrb(month,5,2),’01′,sell,0)),

  sum(decode(substrb(month,5,2),’02′,sell,0)),

  sum(decode(substrb(month,5,2),’03′,sell,0)),

  sum(decode(substrb(month,5,2),’04′,sell,0)),

2006年09月15日

    今天是来中科软的第30天,一个月了,没想到时间这么快,这是我的第一份工作,我很珍惜.也工作的很努力,还有一个月的试用期,不知道能否留下?

    没想到我的第一次面试就成功了,在这个大学毕业等于失业的年代,我的工作似乎来得有些容易?可只有我自己知道这其中的艰辛,一个人在外要付出很多,这是只有亲临其地的人才会了解的.

   

2006年08月29日