簡體   English   中英

參數索引超出范圍(1 > 參數數量,即 0)。 Mysql 與 Java

[英]Parameter index out of range (1 > number of parameters, which is 0). Mysql vs Java

在 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). 

有人可以幫我指出是什么導致了這個問題。

看起來您嘗試執行查詢並指定參數(檢查 java 和 hibernate)但查詢沒有參數。

GROUP BY 子句必須包含選定的列。 如果沒有選擇列,GROUP BY 子句可以使用任何列。 你可以試試這個:

SELECT partner_name, feed_date,
     SUM(CASE WHEN feed_type='SellerChar' THEN count ELSE 0 END) OVER(PARTITION BY year,week,feed_type) AS InputCount,
     SUM(CASE WHEN feed_type='MSF' THEN count ELSE 0 END) OVER(PARTITION BY year,week,feed_type) AS OutputCount
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' OR feed_type='MSF')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM