0

潜在的な複雑さを取り除くためにクエリをスリム化し、さらにフィールドが正しいことを確認しました。DB2 UDB zSeries V7 は私の db2 バージョンです。

SELECT 
    STDINSTRCD, 
    COUNT(*) OVER(PARTITION BY STDINSTRCD),
    CAST(STDINSTRDESC AS VARCHAR(1000)) AS INSTR,
    C.STDINSTRSEQ,
    1
FROM 
    SYST.SCC004 C
WHERE  
    C.STDINSTRCD = '098'

サブクエリも試しました。

select 
 H2.FRSTSTDINSTRCD,
 (select count(*) from SYST.scC004 Ci where '098'=Ci.STDINSTRCD) as cnt, 
 cast(STDINSTRDESC as varchar(1000)),
 C.STDINSTRSEQ,
 1
from SYST.scE4A00 H2
 LEFT OUTER JOIN SYST.scC004 C
 ON C.STDINSTRCD = H2.FRSTSTDINSTRCD
 WHERE
  H2.CTLENTYID='MCS'
  AND H2.VCKVAL='12654'
  AND H2.POKVAL='0198617S12 000  000'

The error is receive is om.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601, SQLERRMC: (;, FROM INTO sqlcode sqlstate -104 Illegal Symbol token. 42601 A character, token 、または句が無効であるか欠落しています。

何かアドバイス?どのような構文エラーが発生する可能性があるかを判断できませんでした。

4

2 に答える 2

0

印刷されていない可能性のある奇妙な特殊文字はありますか? http://www-01.ibm.com/support/docview.wss?uid=swg1IY43009 基本的に、奇妙な cr/lf または特殊文字のように聞こえますか? *nix から Windows へのコピーペーストはありますか?

また、とにかくパーティション分割が必要な理由がわかりませんか? グループはあなたの目標を達成できません。(あなたの基準を満たす行数を数えているように見えます)...最初のクエリでこのようなものはありますか?

SELECT 
 STDINSTRCD, 
 count(1) ,
 CAST(STDINSTRDESC AS VARCHAR(1000)) AS INSTR,
 C.STDINSTRSEQ,
 1
FROM SYST.SCC004 C
WHERE  C.STDINSTRCD = '098'
group by 
STDINSTRCD, 
CAST(STDINSTRDESC AS VARCHAR(1000)) AS INSTR,
C.STDINSTRSEQ,
1
于 2010-02-23T22:44:21.233 に答える