에서 DISTINCT : 1000 개 결과를 쿼리를 반복하고 검색, 내가 페이지를 위해 자바 코드의 조각 과정을을에 사용ROWNUM 및 오라클
SELECT id,
contractnumber,
partyid,
entity,
product,
fecha
FROM (
SELECT DISTINCT (contractdet.id),
contractdet.contractnumber,
contractdet.partyid,
contractdet.entity,
contractdet.product,
contractdet.fecha,
ROWNUM AS rnumber
FROM contractdet
INNER JOIN contractcust ON contractcust.contractdet_id = contractdet.id
INNER JOIN customerdet ON customerdet.partyid = contractdet.partyid
WHERE TO_CHAR(contractdet.fecha, 'YYYYMM') <= TO_CHAR(ADD_MONTHS(TO_DATE(20160828, 'YYYYMMDD'), -3), 'YYYYMM')
AND contractdet.product = 'TC'
ORDER BY contractdet.id ASC
)
WHERE rnumber BETWEEN ? AND ?
ORDER BY id
을 매번. 내가 가지고있는 주요 문제는 DISTINCT 명령은 내가 수행 한 모든 쿼리의 결과를 혼합 할 때 중복 된 행을 검색 할 수 있도록 전체 결과 집합이 아니라 내가 속한 간격에만 적용된다는 것입니다.
쿼리의 형식을 지정하기 위해 노력하십시오. –
'DISTINCT'는 *** 함수가 아닙니다 ***. 검색어의 ** 모든 ** 항목에는 항상 적용됩니다. –
또한 :'TO_DATE (20160828, ..)'이 잘못되었습니다. 'to_date()'는 숫자가 아닌 문자열 ('varchar')을 기대하며'to_date()'가 필요 없습니다. 표현식은'ADD_MONTHS (DATE '2016-08-28', -3)' –