我有一个人把电脑扔出窗外的日子。
我正在处理涉及Crystal Reports(版本10)和Oracle数据库(11g)的问题。
我从数据库中获取一个返回字符串(varcahr2(50))的视图,该字符串实际上是一个数字,当在此视图上运行基本SELECT *查询时,我将以000000000000100.00格式返回该数字。
当在Crystal Reports中使用此视图时,我可以查看字段数据,但我无法对数据求和,因为它不是数字。
我开始尝试在字段上使用ToNumber,Crystal的响应是字符串不是数字文本。好吧,我回到视图并运行TO_NUMBER,当它用于水晶时它没有返回任何结果。我还尝试在视图上运行TO_CHAR,以便我可以将该字段作为文本导入,然后执行ToNumber,但与TO_NUMBER相同,没有显示任何记录。
我已经开始了新的报道,我已经开始了新的观点。没有用。
这似乎与我如何检索视图的数据有关。
简单来说,我从一个表中提取数据,查看外键和值字段这两个字段。
SELECT PRIMARY_KEY,
NVL(MAX(DECODE(FOREIGN_KEY, FOREIGN_KEY_OF_VALUE_I_NEED, VALUE_FIELD)), 0)
FROM MY_TABLE
GROUP BY PRIMARY_KEY
当我尝试使用TO_NUMBER或TO_CHAR修改结果时,我已经在VALUE_FIELD本身和整个表达式周围使用它,在SQL语句中运行时,这两种方式都有效。但是,在使用视图时,对语句的任何TO_NUMBER或TO_CHAR修改都不会在Crystal Reports中返回任何结果。
这整个问题都是一些我忽略的复选框或等价物。
如何解决这个问题或者我可以去寻找答案的任何建议都将不胜感激。
答案 0 :(得分:0)
我在SQL Developer中运行了这个查询:
SELECT xxx, to_number(xxx) yyy
FROM (
SELECT '000000000000100.00' XXX FROM DUAL
)
导致:
XXX YYY
000000000000100.00 100
如果您的字段是真正的数字,您可以创建一个SQL表达式字段来进行转换:
-- {%NUMBER_FIELD}
TO_NUMBER(TABLE.VALUE_FIELD)
答案 1 :(得分:0)
结果证明Crystal Reports如何处理来自数据库的查询。我需要做的就是在另一个Select语句中包含我的SQL语句,并且在该列的实例上应用TO_NUMBER,以便Crystal Reports将列值识别为数字。
希望这可以帮助某人,因为这是一个下午的可怕浪费。