有个问题请教大家
见表
船名 航次 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的计算?
见表
船名 航次 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的计算?
query1.sql.add('
update table1name set teu=20'的个数*1+40’的个数*2+45‘的个数*2。5');
query1.sql.open;
你是做货运软件的吗?
差不多了
我也是做这个的,你这个问题我也做过,。
TABLE1 中有CONT 字段,它的值可能是20,可能是40,也可能是45
在SELECT中,我在计算TEU的格式时,必须先判断CONT的值,然后在根据值来套用公式啊
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就是箱型吧。呵呵。
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三个字段就够了