Java JFreeChart使用数字查询ORACLE错误

Java JFreeChart使用数字查询ORACLE错误,java,sql,swing,jfreechart,sqlexception,Java,Sql,Swing,Jfreechart,Sqlexception,我试图在该主题中提出类似的查询: 生成条形图,但我总是收到以下错误:java.sql.SQLException:jdbcategorydataset.executeQuery:从数据库返回的列不足 我的代码如下: SELECT CASE WHEN TIME>23.73 AND TIME<=24.0 THEN '23.73<TIME<=24.10' WHEN TIME>24.10 AND TIME<=25.68 THEN '24.10<TIME&

我试图在该主题中提出类似的查询:

生成条形图,但我总是收到以下错误:java.sql.SQLException:jdbcategorydataset.executeQuery:从数据库返回的列不足

我的代码如下:

SELECT CASE WHEN TIME>23.73 AND TIME<=24.0 THEN '23.73<TIME<=24.10' 
    WHEN TIME>24.10 AND TIME<=25.68 THEN '24.10<TIME<=25.68'           
    WHEN TIME>25.68 AND TIME<=27.36 THEN '25.68<TIME<=27.36' 
        ELSE '27.36<TIME'  
   END   || ' with value '|| COUNT(*) v  FROM SWIMMER 
GROUP BY CASE 
WHEN TIME>23.73 AND TIME<=24.10 THEN '23.73<TIME<=24.10' 
WHEN TIME>24.10 AND TIME<=25.68 THEN '24.10<TIME<=25.68'  
WHEN TIME>25.68 AND TIME<=27.36 THEN '25.68<TIME<=27.36' 
ELSE '27.36<TIME'  END

我做错了什么?

您上面引用的SQL导致了一个错误,用于检查代码,因为两个case语句不匹配JFreeChart只是重新抛出错误,并显示一条误导性消息

如果您的SQL是正确的,JFreeChart会告诉您,在将case语句与total语句连接时,结果集中需要额外的列。如果查询有效,则只会返回一列

尝试使用以下SQL:

SELECT time_range || ' with value ' || total as category, total
  FROM (SELECT time_range, COUNT(*) AS total
          FROM (SELECT CASE
                         WHEN TIME > 23.73
                              AND TIME <= 24.0 THEN
                          '23.73<TIME<=24.10'
                         WHEN TIME > 24.10
                              AND TIME <= 25.68 THEN
                          '24.10<TIME<=25.68'
                         WHEN TIME > 25.68
                              AND TIME <= 27.36 THEN
                          '25.68<TIME<=27.36'
                         ELSE
                          '27.36<TIME'
                       END AS time_range
                  FROM swimmer)
         GROUP BY time_range)

我试过这样做:从SELECT CASE中选择intrvl | | |'with value'| | count*v当TIME>23.73、TIME24.10、TIME25.68和TIMEGrahamA时,我需要最大限度地简化我的查询,因为有时我只显示四个间隔就有一百个间隔!我会疯狂的选择很多选择!我被你的答案弄糊涂了:为什么需要这么多别名?我的DBnumeric字段时间中只有一个字段的所有工作为什么我的上一个字段不工作?致以最良好的祝愿,PaulH@user2113983您的原始查询不起作用,因为您在select中使用了24.0,在group by中使用了24.10。你评论中的那个不起作用,因为你只有一个专栏,我已经更正了。我使用了3个行内查询别名,因此我不必重复case语句-代码是GrahamA,谢谢!当我在原始代码中更正copyNpasteits时,24.0是一个输入错误,但您确定:*选择intrvl | | |'带值'| | |计数v,计数总数**有效!但我有一个小问题:图表外的文本显示如下:23.73Graham,我找到了:选择intrvl,计数*总计感谢您的帮助!交叉张贴。