我正在尝试为子查询编写JPQL查询。查询如下。
select
fos_name, count(ALLOCATION_BUCKET) as bucket_count
from
(select
*
from
kic.master_mis
where
ALLOCATION_DATE IN (select
max(ALLOCATION_DATE)
from
kic.master_mis
group by BILLED_ID))
where
date(ALLOCATION_DATE) Between 'starting day month -14' AND 'till the date the month completes 30 or 31 days' group by fos_name`
我正在使用MySQL本机查询,但现在现在有一个可变周期。
答案 0 :(得分:0)
我使用类型化查询并为内部查询创建列表。
TypedQuery<Integer> query1;
query1=getEntityManager().createQuery("select max(m.misId) from MasterMis m group by m.billedId",Integer.class);
List<Integer> distinctRows1=query1.getResultList();
TypedQuery<Object[]> query3;
query3=getEntityManager().createQuery("select m.fosName,count(m.allocationBucket),sum(m.totalOutstanding), count(m.lastDispositionCodeFOS),count(m.totalCollection), sum(m.totalCollection) from MasterMis m where m.misId IN :distinctRows1 "+"and m.allocationBucket like '%B0%' and m.allocationDate BETWEEN :startDate AND :endDate group by m.fosName",Object[].class);
List<Object[]> s1=query3.setParameter("distinctRows1", distinctRows1).setParameter("startDate", startDate, TemporalType.DATE).setParameter("endDate", endDate, TemporalType.DATE).getResultList();