我有一个查询如下:
select(SELECT sum(Frequency) FROM omid.entity_epoch_data where DataitemType=0 and
EntityID in(SELECT EntityID FROM omid.entity where PartyID=2) and EpochID in(
SELECT ID FROM omid.epoch where StartDateTime>='2013-11-01' and EndDateTime<='2013-11-30'))/
(select count(*) from omid.entity where PartyID=2);
当我在 sql 中运行它时,它可以工作,但是当我在 java 中运行它时,我收到一些 sql 错误。 我的代码是真实设置的,因为当我用其他东西替换这个查询时它可以工作,所以它表明使用这个查询的逻辑有问题
有人可以帮忙吗?
最佳答案
看起来您正试图找到某种平均值。
但是,这个单一选择非常复杂,我确信您和您之后的任何人都无法轻松地弄清楚您想要做什么。
将其分解为几个较小的查询并分别编码。
然后用 Java 计算平均值,而不是构建这个过于复杂的查询。
或者,创建一个存储函数并从 Java 调用它,因为您说过如果从 MySQL 执行查询它就可以工作。
关于java - 查询在mysql中有效,但在java中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22109202/