Teradata 在sqoop查询中连接两个表时的算术运算

Teradata 在sqoop查询中连接两个表时的算术运算,teradata,sqoop,Teradata,Sqoop,我有一个Teradata查询,它在Teradata SQL Assistant中正确运行,但在sqoop脚本中编写时显示错误 查询使用以下条件对三个表进行联接: ... From tableA as A \ Inner Join tableB as B\ Inner Join tableC as C \ On (B.ID = C.ID and (100*year(A.dt) + month(A.dt)) = C.curr_dt) \ ... 我在sqoop中得到的错误来自乘法 15/01/

我有一个Teradata查询,它在Teradata SQL Assistant中正确运行,但在
sqoop
脚本中编写时显示错误

查询使用以下条件对三个表进行联接:

...

From tableA as A \
Inner Join tableB as B\
Inner Join tableC as C \
On (B.ID = C.ID and (100*year(A.dt) + month(A.dt)) = C.curr_dt) \

...
我在sqoop中得到的错误来自乘法

15/01/06 00:44:01 ERROR manager.SqlManager: Error executing statement: com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database] [TeraJDBC xx.yy.zz.ww] [Error 3706] [SQLState 42000] Syntax error: expected something between '*' and the 'year' keyword.
在加入
sqoop
的过程中,是否不能执行算术运算?我还没有找到任何资源来帮助我解决这个问题。任何帮助都将不胜感激


谢谢

年份和月份不是有效的Teradata SQL,它们都是ODBC语法,由ODBC驱动程序自动重写


请尝试
EXTRACT(YEAR FROM A.dt)

YEAR和MONTH不是有效的Teradata SQL,它们都是ODBC语法,由ODBC驱动程序自动重写。请尝试
提取(A.dt中的年份)
。谢谢!如果你写一个答案,我会接受的。