CASE WHEN SUM(A.INPUT_QTY) > 0 THEN
                      CASE WHEN ROUND( (SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100,  1) > 0 
THEN
                          ROUND((SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100,  1 )
                      ELSE 0
                      END
                 ELSE 0
                 END AS FPY
这是我在算不良率,显示数据是:56.7 这样
现在的问题是,我想在这里加%,也就是显示出来要56.7%。
如何做?

解决方案 »

  1.   


    CASE WHEN SUM(A.INPUT_QTY) > 0 THEN
       CASE WHEN ROUND( (SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1) > 0  
    THEN
       ROUND((SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1 )
       ELSE 0
       END
       ELSE 0
       END ||'%' AS FPY
      

  2.   

    无语中....
    那是你sql的问题了。把全部sql粘出来。。
      

  3.   

    to_char(CASE WHEN SUM(A.INPUT_QTY) > 0 THEN
       CASE WHEN ROUND( (SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1) > 0  
    THEN
       ROUND((SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1 )
       ELSE 0
       END
       ELSE 0
       END )||'%' AS FPY
    这样试试的呢 
      

  4.   

    啊,是这样的 前面有个insert into(。。)select CASE WHEN SUM(A.INPUT_QTY) > 0 THEN
       CASE WHEN ROUND( (SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1) > 0  
    THEN
       ROUND((SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1 )
       ELSE 0
       END
       ELSE 0
       END ||'%' AS FPY
    是这样的,麻烦大家在看完再回复一次
      

  5.   

    也就是我最终查的是insert into 那个table。 不好意思了,这样情况下如何改呢?
      

  6.   

    这个也没问题,oracle连接符号就是||.那既然你说不行就换个方法:
    1、现根据你原来的sql把数据倒入进去,假设这个字段名称为 col
    2、倒入完毕后更新这个表给这个字段后面加个 '%'
    update tab1
       set tabl.col = tab1.col||'%';
    commit;ps.如果你这还说不行,我真的没办法了。
      

  7.   


    --对外层的那个CASE WHEN加上
    TO_CHAR(CASE WHEN .............)||'%'
      

  8.   

    (CASE WHEN SUM(A.INPUT_QTY) > 0 THEN
      CASE WHEN ROUND( (SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1) > 0  
    THEN
      ROUND((SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1 )
      ELSE 0
      END
      ELSE 0
      END)||'%' AS FPY
      

  9.   

    Trim(to_char((CASE WHEN SUM(A.INPUT_QTY) > 0 THEN
      CASE WHEN ROUND( (SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1) > 0  
    THEN
      ROUND((SUM(A.DEFECT_QTY) / SUM(A.INPUT_QTY)) * 100, 1 )
      ELSE 0
      END
      ELSE 0
      END),'9999990.99'))||'%' AS FPY
      

  10.   

    首先我这里FPY 字段值 没有%
    insert into table (FPY) select FPY ||'%' from TTT;
    增加进去的数据是56.2? 还是56.2%
      

  11.   

    你要的是 显示出来要56.7% 
    insert 语句就不用改了
    只要在查询语句中用 to_char(字段名)||'%' 就行了
    如:select to_char(字段名)||'%' from 表名该不会是就这么简单吧?