我正在重构几年前由别人编写的Java程序,无法与他们联系以查找有关SQL /数据库的任何信息,但此查询无法正常工作(当不查看任何结果时分别有两个查询)。我知道在没有更多信息的情况下提问是很烦人的,但我现在还没有太多选择。
"SELECT " + CLMHDR + ".POLBRC, "
+ CLMHDR + ".POLTYC, " + CLMHDR + ".POLNOC," + CLMHDR + ".CLTKYC, "
+ POLHDR + ".INCPTP FROM "+ CLMHDR +
"INNER JOIN " + POLHDR + " ON " + CLMHDR + ".CLTKYC = " + POLHDR+ ".CLTKYP"
+ " WHERE POLNOC = "+ polnocSearch
+ " AND POLBRC = '" + polbrcSearch + "'"
+ " AND POLTYC = '" + poltycSearch + "'"
+ " AND DATRPC <= " + claimDate
+ " GROUP BY POLBRC, POLTYC, POLNOC, CLTKYC"
表CMLHDR和POLHDR确实包含它引用的列,而CLTKYC和CLTKYP是每个表中的键。对于可怕的名字感到抱歉,我们也坚持使用RPG。
编辑: 这是什么工作:
"SELECT POLBRC, POLTYC, POLNOC, CLTKYC FROM "+ CLMHDR
+ " WHERE POLNOC = "+ polnocSearch
+ " AND POLBRC = '" + polbrcSeach + "'"
+ " AND POLTYC = '" + poltycSearch + "'"
+ " AND DATRPC <= " + claimDate
+ " GROUP BY POLBRC, POLTYC, POLNOC, CLTKYC"
接着是:
"SELECT INCPTP, TRMTHP FROM "+ POLHDR + " WHERE POLNOP = "+ polnocSearch
+ " AND POLBRP = '"+ polbrcSearch+ "' AND POLTYP = '"+ poltycSearch + "'"
但我真的更喜欢一次返回所有数据。
答案 0 :(得分:3)
FROM和INNER JOIN子句之间缺少空格:
FROM "+ CLMHDR +
"INNER JOIN
应该是这样的:
FROM "+ CLMHDR +
" INNER JOIN
答案 1 :(得分:2)
除inner join
问题外,group by
存在问题。它应该有INCPTP
。在除MySQL之外的任何数据库中,都会产生错误。
顺便说一句,如果它包含两件事情,那么回答你的问题会更容易: