sql语句的问题
delphi吧
全部回复
仅看楼主
level 1
lyq81404 楼主
select Patient.PatientID, MAX(Cash.CashID)as MaxID,SUM(Cash.Amount)as Balance from Patient left join Cash On Patient.PatientID=Cash.PatientID group by Patient.PatientID
用这个语句查询sql server 2008 在Sql server里可以正确执行,但在Delphi三层里,服务端用FireQuery,客户端用ClientDataset传递这个语句过去打开数据集,只有PatientID和maxid能获得
正确的
值,balance总为0或空,这是什么原因?
2015年03月31日 13点03分 1
level 1
lyq81404 楼主
原因找出来了,把数据库中的SUM的统计字段从numbric(9,2)改为smallmoney问题解决,在fdquery中原来的sum统计出来的字段类型为FMTBCD(38,2),估计是传给ClientDataset时数据丢失了,修改后统计出来的字段类型为Crrency(19,4),数据就没丢失了,但如果以后需要用numbric字段类型又怎么办呢?
2015年04月01日 01点04分 2
level 9
不会……
2015年04月01日 09点04分 3
level 13
所有的数据在取出来的时候,都转成字符串类型,就啥事都没有了
2015年04月01日 17点04分 4
1