第一次jooq用户在这里.我需要将带有嵌套select的常规SQL语句转换为jooq.不知道我是否走在正确的道路上?我感谢任何帮助.
//select *
//from profile
//where (profile_id, effective_date) in (
// select profile_id, max(effective_date) as date
// from profile
// group by profile_id
// )
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有但不确定是否正确:
Result<Record> profiles = dsl_
.select(PROFILE.fields())
.from(PROFILE)
.where(PROFILE.PROFILE_ID, PROFILE.EFFECTIVE_DATE) in (create
.select(PROFILE.PROFILE_ID, max(PROFILE.EFFECTIVE_DATE) as date
.from(PROFILE)
.groupBy(PROFILE.PROFILE_ID)))
.fetch();
Run Code Online (Sandbox Code Playgroud) 你好我有一个方法来计算数据库中的值,我使用jooq然后迭代结果来进行求和,聚合一些字段.我的问题是我可以在jooq语句中执行所有操作,而不必遍历我的resultSet并手动添加它们吗?这是我到目前为止所做的:谢谢.
BigDecimal dealDiscountAmt = BigDecimal.ZERO;
BigDecimal standardAmtOneTimeTrue = BigDecimal.ZERO;
BigDecimal standardAmtOneTimeFalse = BigDecimal.ZERO;
BigDecimal oneTimeFalseX12 = BigDecimal.ZERO;
/** Dao for jooq access to db. */
@Resource(name = "dmDaoContext")
protected DSLContext dmDao_;
List<JDealMetricWorkflowCriteriaRecord> retValList = new ArrayList<JDealMetricWorkflowCriteriaRecord>();
JDealMetricWorkflowCriteriaRecord newDealRecord = new JDealMetricWorkflowCriteriaRecord();
List<JMetricServicePxvRecord> records = dmDao_.selectFrom(METRIC_SERVICE_PXV)
.where(METRIC_SERVICE_PXV.DEAL_ID.eq(dealId), METRIC_SERVICE_PXV.PRODUCED_DATETIME.eq(whenProduced))
.fetch();
for (JMetricServicePxvRecord record : records) {
//sum all dealDiscounts
dealDiscountAmt = dealDiscountAmt.add(record.getStandardTotalPxv().subtract(record.getProposedTotalPxv());
if (record.getOneTime()) {
//sum all dealDiscounts if oneTime is true
standardAmtOneTimeTrue = standardAmtOneTimeTrue.add(record.getStandardTotalPxv().subtract(record.getProposedTotalPxv());
} else {
//sum all dealDiscounts if …Run Code Online (Sandbox Code Playgroud)