在AS400中,我如何在字段上执行算术运算(如+, - )。
Select id, sum(field1+field2) as Total from table
group by id
,在德语中获取以下错误消息“[IBM] [系统
我访问ODBC-Treiber] [DB2füri5/ OS] SQL0104 - Token& ungültig。
GültigeToken:+ - AS <IDENTIFIER>
。“英语翻译是一种东西
例如“[IBM] [System i Access ODBC Driver] [DB2 for i5 / OS] SQL0104 -
令牌<END Instruction>
无效。有效令牌:CL AS IN LOG OUT DATA
<identifier>
“。Select count(*) from (select distinct field1 from table where field2="abc"
,收到以下错误消息“[IBM] [System i Access ODBC-Treiber] [DB2füri5/ OS] SQL0104 - Token <ENDE DER ANWEISUNG>
ungültig.GültigeToken:AS CL IN LOG OUT DATA <IDENTIFIER>
。“<
>
= <>
<=
!<
!>
!=
>=
¬<
¬>
¬=
IN NOT。“有人可以告诉我我的SQL查询有什么问题。
答案 0 :(得分:6)
TABLE
是保留字。 SQL Reference: Reserved schema names and reserved words
可以将查询重写为:
SELECT ID, SUM(FIELD1 + FIELD2) AS TOTAL FROM "TABLE" GROUP BY ID
SELECT COUNT(*) FROM (SELECT DISTINCT FIELD1 FROM "TABLE" WHERE FIELD2 = 'ABC')
<强>更新强>
对于i,DB / 2不支持数字到字符转换的方法或LIKE查询中使用的字符比较类型。
可以将查询重写为:
SELECT eds, SUM(INT(sds)) AS totalh
FROM tbl1
WHERE eds BETWEEN 20130500 AND 20130599
AND siteds IN (
SELECT DISTINCT site
FROM tbl2
WHERE H_04 IN ('1234') AND PERIOD = 201305
)
GROUP BY eds
ORDER BY eds
您可能需要使用DEC
代替INT
,具体取决于字段sds
的定义。
答案 1 :(得分:1)
桌子的名字真的是'桌子'吗?
看起来很奇怪,如果我使用您指定的SQL语句,我会得到相同的错误...但如果我将'table'更改为'table1',它只会抱怨它无法找到'table1 ”。