$sql =mysql_query("select CTL,CUR_C, min(YR_SC) as dt_l,max(YR_SC) as dt_h, (dt_h - dt_l) as yr,max(PRC_N) as pr_n_h, min(PRC_N) as pr_n_l,max(PRC_U) as pr_u_h,min(PRC_U) as pr_u_l, iif((yr * pr_n_h * pr_n_l)>0,exp(log(pr_n_h/pr_n_l)/(dt_h-dt_l))-1,null) as cgr_n,
iif((yr * pr_u_h * pr_u_l)>0,exp(log(pr_u_h/pr_u_l)/(dt_h-dt_l))-1,null) as cgr_u from bse_prc_p where CODE='".$code."' group by CTL,CUR_C ");
while($row=mysql_fetch_array($sql)){
……这个代码很复杂啊,头疼,能否在SQL里做运算?
这个获取不到记录集!

解决方案 »

  1.   

    本帖最后由 xuzuning 于 2010-09-08 11:33:07 编辑
      

  2.   

    可以进行运算   先把php变量用值替换 再把上面那个sql语句在数据库中执行下看  看数据库提示什么错误
      

  3.   

    本帖最后由 xuzuning 于 2010-09-08 11:40:53 编辑
      

  4.   

    先把SQL语句放在MySQL中运行一下看看有没有输出纪录
      

  5.   

    我这个求的是年增长率,好像要用到log吧
      

  6.   

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group by CTL,CUR_C LIMIT 0, 30' at line 2
    这个错误SELECT CTL, CUR_C, min( YR_SC ) AS dt_l, max( YR_SC ) AS dt_h, (
    dt_h - dt_l
    ) AS yr, max( PRC_N ) AS pr_n_h, min( PRC_N ) AS pr_n_l, max( PRC_U ) AS pr_u_h, min( PRC_U ) AS pr_u_l, iif(
    (
    yr * pr_n_h * pr_n_l
    ) >0, exp( log( pr_n_h / pr_n_l ) / ( dt_h - dt_l ) ) -1, NULL 
    ) AS cgr_n, iif(
    (
    yr * pr_u_h * pr_u_l
    ) >0, exp( log( pr_u_h / pr_u_l ) / ( dt_h - dt_l ) ) -1, NULL 
    ) AS cgr_u
    FROM bse_prc_p
    WHERE GROUP BY CTL, CUR_C
    LIMIT 0 , 30
      

  7.   

    WHERE 这里缺少条件表达式 GROUP BY CTL, CUR_C
      

  8.   

    嗯,我放到phpmyadmin里调试的,把CODE='".$code."'去掉了,所以会提示那个错误where CODE='".$code."' group by CTL,CUR_C 
    我不加条件测试时,
    select CTL,CUR_C, min(YR_SC) as dt_l, max(YR_SC) as dt_h, dt_h - dt_l as yr,max(PRC_N) as pr_n_h, min(PRC_N) as pr_n_l,max(PRC_U) as pr_u_h,min(PRC_U) as pr_u_l,if((yr * pr_n_h * pr_n_l)>0,exp(log(pr_n_h/pr_n_l)/(dt_h-dt_l))-1,null) as cgr_n,if((yr * pr_u_h * pr_u_l)>0,exp(log(pr_u_h/pr_u_l)/(dt_h-dt_l))-1,null) as cgr_u from bse_prc_p 提示#1054 - Unknown column 'dt_h' in 'field list'
    可是我明明定义了啊
      

  9.   


    where CODE='".$code."' group by CTL,CUR_C   先在页面输出$code  在把输出替换到where中 再在phpmyadmin中执行
      

  10.   

    select CTL,CUR_C, min(YR_SC) as dt_l,max(YR_SC) as dt_h, (dt_h - dt_l) as yr,max(PRC_N) as pr_n_h, min(PRC_N) as pr_n_l,max(PRC_U) as pr_u_h,min(PRC_U) as pr_u_l, iif((yr * pr_n_h * pr_n_l)>0,exp(log(pr_n_h/pr_n_l)/(dt_h-dt_l))-1,null) as cgr_n,
    iif((yr * pr_u_h * pr_u_l)>0,exp(log(pr_u_h/pr_u_l)/(dt_h-dt_l))-1,null) as cgr_u from bse_prc_p where CODE='CUCN-JN089S-01' group by CTL,CUR_C
    提示#1054 - Unknown column 'dt_h' in 'field list'
    还是这个错误