【发布时间】:2016-01-19 22:15:49
【问题描述】:
在 mysql 中运行以下查询时,它工作得非常好。
SELECT
a.feed_date, a.partner_name,
SUM(a.count) as InputCount,
SUM(CASE when (b.count is null) then 0 else b.count end) as OutputCount
FROM
(SELECT year,week,partner_name, feed_date, count
FROM op_dev.op_stats
WHERE partner_name IN ('xyz, INC.','abc')
AND mkt_elig_cd='Y'
AND rel_grp_type_no='00000'
AND feed_type='SellerChar') AS A
LEFT OUTER JOIN
(SELECT year,week,feed_date, partner_name, count
FROM opt_dev.op_stats
WHERE partner_name IN ('xyz, INC.','abc')
AND mkt_elig_cd='Y'
AND rel_grp_type_no='00000'
AND feed_type='MSF') AS B
ON A.partner_name = B.partner_name
AND A.year=B.year
AND A.week=B.week
GROUP BY A.week,A.year;
但是,当我使用相同的查询字符串并通过 Java 代码调用它时,会出现以下错误:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
谁能帮我指出导致此问题的原因。
【问题讨论】:
-
好吧,那个 SQL 是无法阅读的。请重新格式化。 --- SQL是如何执行的?该错误可能与此有关,因此您需要显示它。
-
感谢 Nguyen 提供的格式。我通过准备好的语句使用 sql,将上述字符串作为查询传递。
-
请包含您用来执行此操作的 Java 代码,以及整个堆栈跟踪,而不仅仅是错误消息。