sql 问题(50分)

  • 主题发起人 主题发起人 philips
  • 开始时间 开始时间
P

philips

Unregistered / Unconfirmed
GUEST, unregistred user!
我有个 sql语句:
SELECT
Dw.单位名称,
Dw.单位,
P.单位,
SUM(P.技能),
SUM(P.地补),
SUM(P.加班工资),
SUM(P.夜餐费),
SUM(P.岗贴),
SUM(P.工龄),
SUM(P.科贴),
SUM(P.稳贴),
SUM(P.教师),
SUM(P.资料),
SUM(P.洗理),
SUM(P.交通),
SUM(P.驾贴),
SUM(P.附加),
SUM(P.补发),
SUM(P.病事扣款),
SUM(P.技能*p.系数+P.地补*p.系数+P.加班工资+P.夜餐费+P.岗贴*p.系数+
P.工龄*p.系数+P.科贴*p.系数+P.稳贴*p.系数+P.教师+P.资料+P.洗理+P.交通+
P.驾贴+P.附加*p.系数+P.补发-P.病事扣款),
SUM(P.保贴),
SUM(P.房贴),
SUM(P.罐补),
SUM(P.御寒),
SUM(P.公积金),
SUM(P.扣发),
SUM(P.技能*p.系数+P.地补*p.系数+P.加班工资+P.夜餐费+P.岗贴*p.系数
+P.工龄*p.系数+P.科贴*p.系数+P.稳贴*p.系数+P.教师+P.资料+P.洗理+P.交通
+P.驾贴+P.附加*p.系数+P.补发-P.病事扣款+P.保贴+P.房贴+P.罐补+P.御寒-P.扣发-P.公积金)
FROM "Dw.dbf" Dw, "P.DBF" P
WHERE Dw.单位=P.单位
GROUP BY Dw.单位, Dw.单位名称, P.单位
ORDER BY Dw.单位
但发现两个合计(两个较长sum)计算结果有部分不对,大多数结果是正确的,不知为何?
另:
怎样判断字段值为空(nil)?
 
问题2:
with Dataset(Query或Table)do
if Field.IsNull then
...
或 if FieldByName('字段').IsNull then
...
 
没道理不对啊,是不是你的数据有问题?
为空判断:IS NULL
 
那数据可能出现什么样的问题? 怎样解决呢?
 
怎样判断字段值为空?嗯……
若该字段值为数值型的话可把属性值Master一项填满“0”(个数为该字段长度值)
要是有更好更具体的方法请通知一声!谢谢!
 
我怎么没找到 字段的属性值--Master?
 
sum在计算的时候,该字段必须是数值,所以不会出现计算出错的情况,除非你的数据有误!!!
 
我的数据在用另一 Query 时, 做报表输出数据源, 进行统计时是正确的!
 
原来在数据中有 为空(null)的数据 !
难道 sum在计算的时候,该字段必须有具体 数值, 而不能为空吗?
dbase表 怎样有效避免 空值的出现?

(报表统计输出时是正确的! )
 
在打开后和关闭前对表的各字段检验,为空(null)的数据 置为0!
 
把null字段置零,或者在设计表结构的时候给它定缺省值0
 
I use Sql6.5.
sum在计算的时候,该字段为空时,计算结果不正确或为0;
把null字段置零(用Sachow的方法),或者设定缺省值为0。
 
sum(CASE WHEN **** then
P.房补 + P.xxx else
0 END)
 
最长的两句是否应写为:
SUM(P.技能)*SUM(p.系数)+SUM(P.地补)*SUM(p.系数)
+SUM(p.field)-SUM(p.field)...
 
多谢各位!分数不多,请笑纳!
 

Similar threads

I
回复
0
查看
800
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部