有个问题请教大家
见表
  船名    航次    20'   40'    45'   TEU
  A        A       1    1            3
  B        B       2           1     4.5
  C        C       3    1      1     7.5
其中的TEU的计算是
     TEU=20'的个数*1+40’的个数*2+45‘的个数*2。5我用SQL写了代码,请问在SQL中如何实现TEU的计算?

解决方案 »

  1.   

    query1.sql.close;
    query1.sql.add('
    update table1name set teu=20'的个数*1+40’的个数*2+45‘的个数*2。5');
    query1.sql.open;
      

  2.   

    select sum(20'*1)+sum(40')*2+sum(45‘)*2.5 as Teu from table1 group by 船名测试通过
      

  3.   

    deluxtx (tx)  
    你是做货运软件的吗?
      

  4.   

    to suny_2001(小鱼儿) 
    差不多了
      

  5.   

    写个触发器,在每次增加或修改记录时自动计算Teu并保存到库
      

  6.   

    deluxtx(tx)
    我也是做这个的,你这个问题我也做过,。
      

  7.   

    select 20'+2*40'+45'*2.5 teu from table1
      

  8.   

    错了错了
    TABLE1 中有CONT 字段,它的值可能是20,可能是40,也可能是45
    在SELECT中,我在计算TEU的格式时,必须先判断CONT的值,然后在根据值来套用公式啊
      

  9.   

    你这道题目呢,意思没有讲清楚,难怪别人误会了。答案应该是这样。
    SELECT F_VES, F_VOY, 
          SUM(CASE WHEN CONT = '20' THEN 1 WHEN CONT = '40' THEN 2 WHEN CONT = '45' THEN
           2.5 ELSE 0 END)
    FROM Table
    GROUP BY F_VES, F_VOY在MSSQL上通过。其中F_VES是船名,F_VOY是航次。 CONT就是箱型吧。呵呵。
      

  10.   

    SELECT F_VES, F_VOY, SUM(CASE WHEN CONT = '20' THEN 1 ELSE 0 END) AS '20', 
          SUM(CASE WHEN CONT = '40' THEN 1 ELSE 0 END) AS '40', 
          SUM(CASE WHEN CONT = '45' THEN 1 ELSE 0 END) AS '45', 
          SUM(CASE WHEN CONT = '20' THEN 1 WHEN CONT = '40' THEN 2 WHEN CONT = '45' THEN
           2.5 ELSE 0 END) 'TEU'
    FROM TABLE
    GROUP BY F_VES, F_VOY
    上面这个SQL语句是没有算出箱型个数的,现在这个是有的。
    数据库里要F_VES(船名),F_VOY(航次),有CONT三个字段就够了