关于SQL的两个小问题(130分)

  • 主题发起人 主题发起人 fhlong
  • 开始时间 开始时间
F

fhlong

Unregistered / Unconfirmed
GUEST, unregistred user!
1。在SQL中怎样批删除表
例如:DROP TABLE A*
2。使用DB2数据库在写
SELECT A.D,SUM(A.A),SUM(A.B),SUM(A.A)/SUM(A.B)*100 FROM DD.A
WHERE A.B<>0 GROUP BY A.D
SUM(A.A)能计算出数值,SUM(A.B)也能计算出数值
但SUM(A.A)/SUM(A.B)*100始终为0
请教以上两句SQL怎么写。
 
急!急!!!!!!!!
 
WITH TAB(F1,F2,F3) AS
(SELECT A.D,SUM(A.A),SUM(A.B) FROM DD.A
WHERE A.B<>0 GROUP BY A.D)
SELECT F1,F2,F3,F2/F3*100 FROM TAB
 
DSM2000:
与原语句结果相同。
 
我已经找到原因:在SUM(A.A)/SUM(A.B)*100时,如SUM(A.A)的小数位数大于
SUM(A.B),则结果保留 A.A的小数位长-A.B的小数位长。
所以这个问题2变成,如何保留小数位长。
再次请教!
BTW:第一个问题有人使用过吗?
 
保留小数位长
sql 的convert 不知道可以否,我也没用过!看看
 
插个队!我还没搞定!
 
烂泥>>
有结果了吗?谢谢!
 
sql server下我一般用这种方法:
SELECT A.D,SUM(A.A),SUM(A.B),ROUND(SUM(A.A)/CAST(SUM(A.B)*100 AS FLOAT(24)),3) FROM DD.A WHERE A.B<>0 GROUP BY A.D
这样能按自己的意愿保留小数位数。不知DB2能不能行?
 
好,先试一下!
 
接受答案了.
 
后退
顶部