(링크의 오른쪽에있는) 사용 된 쿼리가이 결과를 생성했습니다 (왼쪽).
는 http://www.sqlfiddle.com/#!2/f34f1/1mysql datediff에 의해 반환 된 열에 조건이있는 쿼리의 결과 행 수를 얻는 방법
나는 새로운 오전 JasperReports를 및 MySQL의를 참조하십시오. 내가
- 수에 노력하고 아직 참조 된 용의자/5 일 이내에 5 일 이상 걸렸다 고객의
- 수를 언급 한 클라이언트의
- 카운트가 언급 얻을 클라이언트를 확인했다.
내가 5 일
SELECT COUNT(*) from
(select p.patient_id,
(CASE WHEN st.smear_result <> 'NEGATIVE' OR st.gxp_result='MTB+'
THEN IF(DATEDIFF(r.date_referred,MIN(st.date_smear_tested)) IS NULL,'N/A',(DATEDIFF(r.date_referred,MIN(st.date_smear_tested))))
ELSE
(CASE WHEN st.smear_result='NEGATIVE' OR st.gxp_result='MTB-'
THEN IF(DATEDIFF(r.date_referred,MAX(st.date_smear_tested)) IS NULL,'N/A',(DATEDIFF(r.date_referred,MAX(st.date_smear_tested))))
ELSE 'N/A' end)END) as days_taken,
IF(r.date_referred IS NULL,'N/A',r.date_referred) date_referred
from patient as p
right outer join sputum_test as st on p.patient_id=st.patient_id
right outer join referral as r on r.patient_id=st.patient_id
where p.suspected_by is not null and (p.patient_status='SUSPECT' or p.patient_status='CONFIRMED')
group by p.patient_id
having days_taken <=5) AS SUBQUERY;
그리고 5 일 이상 걸렸다 고객의 카운트가 언급하려면 내에서 언급 된 고객의 수를 얻을 수 있어요.
SELECT COUNT(*) from
(select p.patient_id,
(CASE WHEN st.smear_result <> 'NEGATIVE' OR st.gxp_result='MTB+'
THEN IF(DATEDIFF(r.date_referred,MIN(st.date_smear_tested)) IS NULL,'N/A',(DATEDIFF(r.date_referred,MIN(st.date_smear_tested))))
ELSE
(CASE WHEN st.smear_result='NEGATIVE' OR st.gxp_result='MTB-'
THEN IF(DATEDIFF(r.date_referred,MAX(st.date_smear_tested)) IS NULL,'N/A',(DATEDIFF(r.date_referred,MAX(st.date_smear_tested))))
ELSE 'N/A' end)END) as days_taken,
IF(r.date_referred IS NULL,'N/A',r.date_referred) date_referred
from patient as p
right outer join sputum_test as st on p.patient_id=st.patient_id
right outer join referral as r on r.patient_id=st.patient_id
where p.suspected_by is not null and (p.patient_status='SUSPECT' or p.patient_status='CONFIRMED')
group by p.patient_id
having days_taken > 5) AS SUBQUERY;
하지만 어떻게 카운트를받을 수 있습니까? 추천 된 용의자/확인 된 클라이언트는 무엇입니까?
내 계획은 결과를 2 열로 얻는 것입니다 :
열 1 : 3 조건 표시 및 열 2 : 옆에있는 행 합계 표시.
iReport 디자이너 디자이너로 솔루션 쿼리를 전달하여 3 가지 조건의 원형 차트를 레이블로 만들고 각 조각의 백분율을 보여주는 개수를 계산합니다. 이 같은
해결책 'N/A'가 within_5_days에서 계산되고 잘못 계산되었습니다. 하위 쿼리가 'NULL'을 생성하지 않습니다 – user2474410
N/A가 아닌 NULL을 반환하기 위해 하위 쿼리를 변경해야한다고 말했습니다. – Barmar
오, 알았어. 고마워! 그것은 작동합니다 :) – user2474410