查询,如下所示:
SELECT SUM(col1 * col3) AS total, col2
FROM table1
GROUP BY col2
单独运行时按预期工作。
供参考:
table1.col1 -- float
table1.col2 -- varchar2
table1.col3 -- float
此查询移到子查询时,我收到一个ORA-01722错误,该错误参考select子句中的“ col2”位置。较大的查询如下所示:
SELECT col3, subquery1.total
FROM table3
LEFT JOIN (
SELECT SUM(table1.col1 * table1.col3) AS total, table.1col2
FROM table1
GROUP BY table1.col2
) subquery1 ON table3.col3 = subquery1.col2
供参考:
table3.col3 -- varchar2
也许还值得注意的是,我还有另一个查询,来自 table2 ,其结构与 table1 相同。如果我使用来自table2的子查询,则它可以工作。使用table1时永远无法使用。
没有串联,数据类型匹配,查询本身起作用...我在这里很茫然。我还要寻找什么?到底什么东西困扰着我?
(我没有选择或创建表结构,也无法更改它们,因此不幸的是,这样做的答案将无济于事。)
答案 0 :(得分:0)
尝试使用正确的float转换为char ..
SELECT col3, subquery1.total
FROM table3
LEFT JOIN (
SELECT SUM(table1.col1 * table1.col3) AS total, table.1col2
FROM table1
GROUP BY table1.col2
) subquery1 ON to_char(table3.col3) = subquery1.col2