Dev*_*per 0 sql db2 ibm-midrange
在AS400中,我如何在字段上执行算术运算(如+, - ).
Select id, sum(field1+field2) as Total from table
group by id,在德语中获取以下错误消息"[IBM] [System i Access 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 - 令牌<ENDE DER ANWEISUNG>ungültig.Gültige令牌:AS CL IN LOG OUT DATA <IDENTIFIER>."< >= <> <= !< !> != >= ¬< ¬> ¬=IN NOT."有人可以告诉我我的SQL查询有什么问题.
TABLE是一个保留字. SQL参考:保留的模式名称和保留字.
查询可以重写为:
SELECT ID, SUM(FIELD1 + FIELD2) AS TOTAL FROM "TABLE" GROUP BY ID
SELECT COUNT(*) FROM (SELECT DISTINCT FIELD1 FROM "TABLE" WHERE FIELD2 = 'ABC')
Run Code Online (Sandbox Code Playgroud)
UPDATE
DB/2 for i不支持您的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
Run Code Online (Sandbox Code Playgroud)
您可能需要使用DEC而不是INT依赖于字段的定义sds.