2024-01-10 18:20 통계페이지 작업(1 to 3)

This commit is contained in:
myname 2024-01-10 18:20:22 +09:00
parent 6552faa426
commit ac2e4b4817
10 changed files with 1665 additions and 4 deletions

View File

@ -208,6 +208,10 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
private String yNowMthreeStsfc;
private String yNowMfourStsfc;
private String lctrDivCd; //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예
private String no3; //통계 데이터 구분 10-횟수, 20-인원
public String getDesc1() {
return desc1;
@ -1051,5 +1055,17 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
public void setyNowMfourStsfc(String yNowMfourStsfc) {
this.yNowMfourStsfc = yNowMfourStsfc;
}
public String getLctrDivCd() {
return lctrDivCd;
}
public void setLctrDivCd(String lctrDivCd) {
this.lctrDivCd = lctrDivCd;
}
public String getNo3() {
return no3;
}
public void setNo3(String no3) {
this.no3 = no3;
}
}

View File

@ -113,4 +113,11 @@ public interface VEInstrMixService {
List<VEInstrDetailVO> selectWhereInDetailReport(VEInstrDetailVO vEInstrDetailVO);
List<VEInstrDetailVO> selectInstrExcelList(VEInstrDetailVO vEInstrDetailVO);
//교육실정통계- 월별 횟수/교육인원(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//교육실정통계- 월별 지역별 교육횟수/교육인원(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no2_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception;
}

View File

@ -188,7 +188,7 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VEInstrMixDAO.selectEduPrfrmInfo", vEInstrDetailVO);
return tlist;
}
public List<VELctrDetailVO> selectEduPrfrmInfoAdult(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VEInstrMixDAO.selectEduPrfrmInfoAdult", vEInstrDetailVO);
return tlist;
@ -245,4 +245,17 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
List<VEInstrDetailVO> tlist = (List<VEInstrDetailVO>) list("VEInstrMixDAO.selectInstrExcelList", vEInstrDetailVO);
return tlist;
}
//통계정보-청소년-월별 횟수/교육인원(그래프 포함)
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no1", vEInstrDetailVO);
return tlist;
}
//통계정보-청소년-월별 지역별 교육횟수/교육인원(그래프 포함)
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no2_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no2_no3", vEInstrDetailVO);
return tlist;
}
}

View File

@ -138,7 +138,7 @@ public class VEInstrMixServiceImpl implements VEInstrMixService {
public List<VELctrDetailVO> selectEduPrfrmInfo(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfoAdult(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfoAdult(vEInstrDetailVO);
}
@ -196,4 +196,14 @@ public class VEInstrMixServiceImpl implements VEInstrMixService {
public List<VEInstrDetailVO> selectInstrExcelList(VEInstrDetailVO vEInstrDetailVO) {
return vEInstrMixDAO.selectInstrExcelList(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no1(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no2_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVO);
}
}

View File

@ -1315,6 +1315,88 @@ public class EduAsgnmCnfrmMngTngrController {
return "oprtn/tngrVisitEdu/eduPrfrmMngList";
}
/**
* 교육실적통계 화면
*/
@RequestMapping("newEduPrfrmMngList.do")
public String newEduPrfrmMngList(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
, @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail
, HttpSession session
, ModelMap model
) throws Exception {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
//설정 리스트(과거~올해+1)
List<VELctrDetailVO> selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO);
model.addAttribute("selectStngYrList", selectStngYrList);
/*
//1.pageing step1
//vEInstrDetailVODetail.setPageUnit(10);
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo = vEPagingUtil.setPagingStep1_VEInstrDetailVO(paginationInfo, vEInstrDetailVODetail);
//2. pageing step2
vEInstrDetailVODetail = vEPagingUtil.setPagingStep2_VEInstrDetailVO(vEInstrDetailVODetail, paginationInfo);
*/
vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예
//통계- 월별 횟수/교육인원(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_tngr_no1(vEInstrDetailVODetail);
//복호화
selectAsgnmInfoT2List_no1 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no1);
model.addAttribute("list_no1",selectAsgnmInfoT2List_no1);
/* 10-횟수, 20-인원 */
vEInstrDetailVODetail.setNo3("10");
//통계- 월별 지역별 교육횟수(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no2 = vEInstrMixService.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVODetail);
//복호화
selectAsgnmInfoT2List_no2 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no2);
model.addAttribute("list_no2",selectAsgnmInfoT2List_no2);
/* 10-횟수, 20-인원 */
vEInstrDetailVODetail.setNo3("20");
//통계- 월별 지역별 교육인원(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no3 = vEInstrMixService.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVODetail);
//복호화
selectAsgnmInfoT2List_no3 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no3);
model.addAttribute("list_no3",selectAsgnmInfoT2List_no3);
/*
//3.pageing step3
paginationInfo = vEPagingUtil.setPagingStep3_VELctrDetailVO(selectAsgnmInfoT2List, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
*/
return "oprtn/tngrVisitEdu/newEduPrfrmMngList";
}
/**
* 교육실적통계 Excel
* @param model
@ -1573,6 +1655,233 @@ public class EduAsgnmCnfrmMngTngrController {
modelAndView.addObject(model);
return modelAndView;
}
/**
* 교육실적통계 Excel - 청소년 - 월별 횟수/교육인원(그래프 포함)
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "eduPrfrmMngExcelDownLoad_tngr_no1.do")
public ModelAndView eduPrfrmMngExcelDownLoad_tngr_no1(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail
, ModelMap model
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView");
try {
/*
//1.pageing step1
//vEInstrDetailVODetail.setPageUnit(10);
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo = vEPagingUtil.setPagingStep1_VEInstrDetailVO(paginationInfo, vEInstrDetailVODetail);
//2. pageing step2
vEInstrDetailVODetail = vEPagingUtil.setPagingStep2_VEInstrDetailVO(vEInstrDetailVODetail, paginationInfo);
*/
//통계- 월별 횟수/교육인원(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_tngr_no1(vEInstrDetailVODetail);
//복호화
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
System.out.println("out-list-2");
List<Object> excelData = new ArrayList<>();
excelData.addAll(selectAsgnmInfoT2List);
// 세팅값
String title = "교육실적통계-월별 횟수.교육인원";
int[] width = {
4000, 4000
, 4000
, 4000, 4000
//, 4000
, 4000
, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000
}; // 너비
//33개 항목
String[] header = {
"구분"
, "횟수/인원"
, "1월"
//, "요일"
, "2월"
, "3월", "4월", "5월", "6월", "7월"
, "8월", "9월", "10월", "11월", "12월"
, "합계"
};
String[] order = {
"EduSlctCd"
, "Chasi"
, "Mnt01"
//, "wCnt"
, "Mnt02"
, "Mnt03", "Mnt04", "Mnt05", "Mnt06", "Mnt07"
, "Mnt08", "Mnt09", "Mnt10", "Mnt11", "Mnt12"
, "MntSum"
};
/*
// 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title);
model.addAttribute("locale", Locale.KOREA);
model.addAttribute("workbook", workbook);
model.addAttribute("workbookName", title);
*/
excelDown(
excelData,
title,
width,
header,
order,
model
);
}catch(Exception ep) {
ep.getStackTrace();
}
modelAndView.addObject(model);
return modelAndView;
}
/**
* 교육실적통계 Excel - 청소년
* 월별 지역별 교육횟수(그래프 포함)
월별 지역별 교육인원(그래프 포함)
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "eduPrfrmMngExcelDownLoad_tngr_no2_no3.do")
public ModelAndView eduPrfrmMngExcelDownLoad_tngr_no2_no3(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail
, ModelMap model
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView");
try {
String s_no3 = vEInstrDetailVODetail.getNo3();
String title = "교육실적통계-월별 횟수.교육인원";
if ("10".equals(s_no3)) {
title = "교육실적통계-월별 지역별 교육횟수";
}else if ("20".equals(s_no3)) {
title = "교육실적통계-월별 지역별 교육인원";
}
//통계- 월별 횟수/교육인원(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVODetail);
List<Object> excelData = new ArrayList<>();
excelData.addAll(selectAsgnmInfoT2List);
// 세팅값
//String title = "교육실적통계-월별 횟수.교육인원";
int[] width = {
4000, 4000
, 4000
, 4000, 4000
//, 4000
, 4000
, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000
}; // 너비
//33개 항목
String[] header = {
"구분"
, "지역", "횟수/인원"
, "1월"
//, "요일"
, "2월"
, "3월", "4월", "5월", "6월", "7월"
, "8월", "9월", "10월", "11월", "12월"
, "합계"
};
String[] order = {
"EduSlctCd"
, "divCd", "Chasi"
, "Mnt01"
//, "wCnt"
, "Mnt02"
, "Mnt03", "Mnt04", "Mnt05", "Mnt06", "Mnt07"
, "Mnt08", "Mnt09", "Mnt10", "Mnt11", "Mnt12"
, "MntSum"
};
/*
// 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title);
model.addAttribute("locale", Locale.KOREA);
model.addAttribute("workbook", workbook);
model.addAttribute("workbookName", title);
*/
excelDown(
excelData,
title,
width,
header,
order,
model
);
}catch(Exception ep) {
ep.getStackTrace();
}
modelAndView.addObject(model);
return modelAndView;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
@ -1626,4 +1935,26 @@ public class EduAsgnmCnfrmMngTngrController {
return p_paginationInfo;
}
@SuppressWarnings("unused")
private void excelDown(
List list,
String title,
int[] width,
String[] header,
String[] order,
ModelMap model
){
// 호출
SXSSFWorkbook workbook;
try {
workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(list, header, order, width, title);
model.addAttribute("locale", Locale.KOREA);
model.addAttribute("workbook", workbook);
model.addAttribute("workbookName", title);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

View File

@ -149,5 +149,8 @@
<sqlMap resource="egovframework/sqlmap/ve/qustnr/VEALettnQestnrRsltDetail_SQL_Tibero.xml"/> <!-- 설문응답결과 상세 -->
<sqlMap resource="egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Tibero.xml"/> <!-- 설문지 MIX 쿼리 -->
<!-- 통계 2024.01.10 -->
<sqlMap resource="egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Tibero.xml"/><!-- 통계 쿼리 -->
</sqlMapConfig>

View File

@ -0,0 +1,708 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 강사, 강사상세 테이블 -->
<sqlMap namespace="VESttstMix">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEInstrDetailVO" type="kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO"/>
<typeAlias alias="VELctrDetailVO" type="kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO"/>
<typeAlias alias="VELctrSttsVO" type="kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrSttsVO"/>
<!-- 교육실정통계 -①월별 횟수/교육인원(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_tngr_no1" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_tngr_no1 */
SELECT aaaa.edu_hope_yr AS eduHopeYr
/*
, aaaa.div_cd AS divCd
, aaaa.edu_slct_cd AS eduSlctCd
, aaaa.no3 AS chasi
*/
, CASE
WHEN aaaa.div_cd='10' THEN '청소년'
WHEN aaaa.div_cd='20' THEN '교직원'
WHEN aaaa.div_cd='30' THEN '학부모'
ELSE '총계'
END AS divCd
, CASE
WHEN aaaa.edu_slct_cd='10' THEN '온라인'
WHEN aaaa.edu_slct_cd='20' THEN '오프라인'
ELSE '합계'
END AS eduSlctCd
, CASE
WHEN aaaa.no3='10' THEN '횟수'
WHEN aaaa.no3='20' THEN '인원'
ELSE '합계'
END AS chasi
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt01 ELSE bbbb.cnt01 END mnt01
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt02 ELSE bbbb.cnt02 END mnt02
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt03 ELSE bbbb.cnt03 END mnt03
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt04 ELSE bbbb.cnt04 END mnt04
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt05 ELSE bbbb.cnt05 END mnt05
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt06 ELSE bbbb.cnt06 END mnt06
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt07 ELSE bbbb.cnt07 END mnt07
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt08 ELSE bbbb.cnt08 END mnt08
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt09 ELSE bbbb.cnt09 END mnt09
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt10 ELSE bbbb.cnt10 END mnt10
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt11 ELSE bbbb.cnt11 END mnt11
, CASE WHEN aaaa.no3='20' THEN bbbb.mnt12 ELSE bbbb.cnt12 END mnt12
, CASE WHEN aaaa.no3='20' THEN bbbb.mntSum ELSE bbbb.cntSum END mntSum
FROM (
SELECT a.edu_hope_yr
, b.div_cd
, c.edu_slct_cd
, d.no3
FROM
(
SELECT #mngNmbrYr# edu_hope_yr FROM DUAL
)a
,(
SELECT 10 div_cd FROM DUAL
UNION ALL SELECT 20 no1 FROM DUAL
UNION ALL SELECT 30 no1 FROM DUAL
UNION ALL SELECT 99 no1 FROM DUAL
)b
,(
SELECT 10 edu_slct_cd FROM DUAL
UNION ALL SELECT 20 no2 FROM DUAL
UNION ALL SELECT 99 no2 FROM DUAL
)c
,(
SELECT 10 no3 FROM DUAL
UNION ALL SELECT 20 no2 FROM DUAL
)d
)aaaa
LEFT OUTER JOIN
(
SELECT *
FROM (
/* 전체 집계 */
SELECT edu_hope_yr, '99' div_cd
, '99' edu_slct_cd
, SUM(mnt01) AS mnt01
, SUM(mnt02) AS mnt02
, SUM(mnt03) AS mnt03
, SUM(mnt04) AS mnt04
, SUM(mnt05) AS mnt05
, SUM(mnt06) AS mnt06
, SUM(mnt07) AS mnt07
, SUM(mnt08) AS mnt08
, SUM(mnt09) AS mnt09
, SUM(mnt10) AS mnt10
, SUM(mnt11) AS mnt11
, SUM(mnt12) AS mnt12
, SUM(mntSum) AS mntSum
, SUM(cnt01) AS cnt01
, SUM(cnt02) AS cnt02
, SUM(cnt03) AS cnt03
, SUM(cnt04) AS cnt04
, SUM(cnt05) AS cnt05
, SUM(cnt06) AS cnt06
, SUM(cnt07) AS cnt07
, SUM(cnt08) AS cnt08
, SUM(cnt09) AS cnt09
, SUM(cnt10) AS cnt10
, SUM(cnt11) AS cnt11
, SUM(cnt12) AS cnt12
, SUM(cntSum) AS cntSum
FROM (
SELECT aa.edu_hope_yr, aa.div_cd, aa.edu_slct_cd
, SUM(DECODE(aa.edu_hope_dt,'01',aa.prsnl,0)) AS mnt01
, SUM(DECODE(aa.edu_hope_dt,'02',aa.prsnl,0)) AS mnt02
, SUM(DECODE(aa.edu_hope_dt,'03',aa.prsnl,0)) AS mnt03
, SUM(DECODE(aa.edu_hope_dt,'04',aa.prsnl,0)) AS mnt04
, SUM(DECODE(aa.edu_hope_dt,'05',aa.prsnl,0)) AS mnt05
, SUM(DECODE(aa.edu_hope_dt,'06',aa.prsnl,0)) AS mnt06
, SUM(DECODE(aa.edu_hope_dt,'07',aa.prsnl,0)) AS mnt07
, SUM(DECODE(aa.edu_hope_dt,'08',aa.prsnl,0)) AS mnt08
, SUM(DECODE(aa.edu_hope_dt,'09',aa.prsnl,0)) AS mnt09
, SUM(DECODE(aa.edu_hope_dt,'10',aa.prsnl,0)) AS mnt10
, SUM(DECODE(aa.edu_hope_dt,'11',aa.prsnl,0)) AS mnt11
, SUM(DECODE(aa.edu_hope_dt,'12',aa.prsnl,0)) AS mnt12
, SUM(DECODE(aa.edu_hope_dt,'01',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'02',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'03',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'04',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'05',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'06',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'07',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'08',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'09',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'10',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'11',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'12',aa.prsnl,0)) AS mntSum
, SUM(DECODE(aa.edu_hope_dt,'01',1,0)) AS cnt01
, SUM(DECODE(aa.edu_hope_dt,'02',1,0)) AS cnt02
, SUM(DECODE(aa.edu_hope_dt,'03',1,0)) AS cnt03
, SUM(DECODE(aa.edu_hope_dt,'04',1,0)) AS cnt04
, SUM(DECODE(aa.edu_hope_dt,'05',1,0)) AS cnt05
, SUM(DECODE(aa.edu_hope_dt,'06',1,0)) AS cnt06
, SUM(DECODE(aa.edu_hope_dt,'07',1,0)) AS cnt07
, SUM(DECODE(aa.edu_hope_dt,'08',1,0)) AS cnt08
, SUM(DECODE(aa.edu_hope_dt,'09',1,0)) AS cnt09
, SUM(DECODE(aa.edu_hope_dt,'10',1,0)) AS cnt10
, SUM(DECODE(aa.edu_hope_dt,'11',1,0)) AS cnt11
, SUM(DECODE(aa.edu_hope_dt,'12',1,0)) AS cnt12
, SUM(DECODE(aa.edu_hope_dt,'01',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'02',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'03',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'04',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'05',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'06',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'07',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'08',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'09',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'10',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'11',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'12',1,0)) AS cntSum
FROM (
SELECT
SUBSTR(b.edu_hope_dt,1,4) AS edu_hope_yr
, SUBSTR(b.edu_hope_dt,6,2) AS edu_hope_dt
, b.prsnl
, a.edu_slct_cd
, b.div_cd
FROM
/*
ve_lctr_stng d,
*/
ve_edu_chasi_instr_asgnm c ,
ve_edu_chasi b ,
ve_edu_aplct a
WHERE 1 =1
AND SUBSTR(b.edu_hope_dt,1,4)=#mngNmbrYr#
AND b.edu_aplct_ord =c.edu_aplct_ord
AND b.edu_chasi_ord =c.edu_chasi_ord
AND b.edu_aplct_ord =a.edu_aplct_ord
AND NVL(a.use_yn,'Y') ='Y'
AND a.aprvl_cd = '60'
AND c.asgnm_aprvl_cd = '30'
AND a.lctr_div_cd =#lctrDivCd#
)aa
GROUP BY aa.edu_hope_yr, aa.div_cd, aa.edu_slct_cd
)aaa
GROUP BY edu_hope_yr
UNION ALL
/* 구분별 집계 */
SELECT edu_hope_yr, '99' div_cd
, aaa.edu_slct_cd
, SUM(mnt01) AS mnt01
, SUM(mnt02) AS mnt02
, SUM(mnt03) AS mnt03
, SUM(mnt04) AS mnt04
, SUM(mnt05) AS mnt05
, SUM(mnt06) AS mnt06
, SUM(mnt07) AS mnt07
, SUM(mnt08) AS mnt08
, SUM(mnt09) AS mnt09
, SUM(mnt10) AS mnt10
, SUM(mnt11) AS mnt11
, SUM(mnt12) AS mnt12
, SUM(mntSum) AS mntSum
, SUM(cnt01) AS cnt01
, SUM(cnt02) AS cnt02
, SUM(cnt03) AS cnt03
, SUM(cnt04) AS cnt04
, SUM(cnt05) AS cnt05
, SUM(cnt06) AS cnt06
, SUM(cnt07) AS cnt07
, SUM(cnt08) AS cnt08
, SUM(cnt09) AS cnt09
, SUM(cnt10) AS cnt10
, SUM(cnt11) AS cnt11
, SUM(cnt12) AS cnt12
, SUM(cntSum) AS cntSum
FROM (
SELECT aa.edu_hope_yr, aa.div_cd, aa.edu_slct_cd
, SUM(DECODE(aa.edu_hope_dt,'01',aa.prsnl,0)) AS mnt01
, SUM(DECODE(aa.edu_hope_dt,'02',aa.prsnl,0)) AS mnt02
, SUM(DECODE(aa.edu_hope_dt,'03',aa.prsnl,0)) AS mnt03
, SUM(DECODE(aa.edu_hope_dt,'04',aa.prsnl,0)) AS mnt04
, SUM(DECODE(aa.edu_hope_dt,'05',aa.prsnl,0)) AS mnt05
, SUM(DECODE(aa.edu_hope_dt,'06',aa.prsnl,0)) AS mnt06
, SUM(DECODE(aa.edu_hope_dt,'07',aa.prsnl,0)) AS mnt07
, SUM(DECODE(aa.edu_hope_dt,'08',aa.prsnl,0)) AS mnt08
, SUM(DECODE(aa.edu_hope_dt,'09',aa.prsnl,0)) AS mnt09
, SUM(DECODE(aa.edu_hope_dt,'10',aa.prsnl,0)) AS mnt10
, SUM(DECODE(aa.edu_hope_dt,'11',aa.prsnl,0)) AS mnt11
, SUM(DECODE(aa.edu_hope_dt,'12',aa.prsnl,0)) AS mnt12
, SUM(DECODE(aa.edu_hope_dt,'01',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'02',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'03',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'04',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'05',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'06',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'07',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'08',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'09',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'10',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'11',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'12',aa.prsnl,0)) AS mntSum
, SUM(DECODE(aa.edu_hope_dt,'01',1,0)) AS cnt01
, SUM(DECODE(aa.edu_hope_dt,'02',1,0)) AS cnt02
, SUM(DECODE(aa.edu_hope_dt,'03',1,0)) AS cnt03
, SUM(DECODE(aa.edu_hope_dt,'04',1,0)) AS cnt04
, SUM(DECODE(aa.edu_hope_dt,'05',1,0)) AS cnt05
, SUM(DECODE(aa.edu_hope_dt,'06',1,0)) AS cnt06
, SUM(DECODE(aa.edu_hope_dt,'07',1,0)) AS cnt07
, SUM(DECODE(aa.edu_hope_dt,'08',1,0)) AS cnt08
, SUM(DECODE(aa.edu_hope_dt,'09',1,0)) AS cnt09
, SUM(DECODE(aa.edu_hope_dt,'10',1,0)) AS cnt10
, SUM(DECODE(aa.edu_hope_dt,'11',1,0)) AS cnt11
, SUM(DECODE(aa.edu_hope_dt,'12',1,0)) AS cnt12
, SUM(DECODE(aa.edu_hope_dt,'01',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'02',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'03',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'04',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'05',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'06',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'07',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'08',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'09',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'10',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'11',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'12',1,0)) AS cntSum
FROM (
SELECT
SUBSTR(b.edu_hope_dt,1,4) AS edu_hope_yr
, SUBSTR(b.edu_hope_dt,6,2) AS edu_hope_dt
, b.prsnl
, a.edu_slct_cd
, b.div_cd
FROM
/*
ve_lctr_stng d,
*/
ve_edu_chasi_instr_asgnm c ,
ve_edu_chasi b ,
ve_edu_aplct a
WHERE 1 =1
AND SUBSTR(b.edu_hope_dt,1,4)=#mngNmbrYr#
AND b.edu_aplct_ord =c.edu_aplct_ord
AND b.edu_chasi_ord =c.edu_chasi_ord
AND b.edu_aplct_ord =a.edu_aplct_ord
AND NVL(a.use_yn,'Y') ='Y'
AND a.aprvl_cd = '60'
AND c.asgnm_aprvl_cd = '30'
AND a.lctr_div_cd =#lctrDivCd#
)aa
GROUP BY aa.edu_hope_yr, aa.div_cd, aa.edu_slct_cd
)aaa
GROUP BY edu_hope_yr, aaa.edu_slct_cd
)aaaa
)bbbb
ON(
1=1
AND aaaa.edu_hope_yr=bbbb.edu_hope_yr
AND aaaa.div_cd=bbbb.div_cd
AND aaaa.edu_slct_cd=bbbb.edu_slct_cd
)
WHERE aaaa.div_cd='99'
ORDER BY aaaa.edu_hope_yr
, aaaa.no3
, DECODE(aaaa.div_cd,'99','00',aaaa.div_cd)
, DECODE(aaaa.edu_slct_cd,'99','00',DECODE(aaaa.edu_slct_cd,'20','05',aaaa.edu_slct_cd)) DESC
</select>
<!-- 교육실정통계 -②월별 지역별 교육횟수/③교육인원(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_tngr_no2_no3" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_tngr_no2_no3 */
SELECT aaaa.edu_hope_yr AS eduHopeYr
, cccc.code_nm AS divCd
/*
, CASE
WHEN aaaa.div_cd='10' THEN '청소년'
WHEN aaaa.div_cd='20' THEN '교직원'
WHEN aaaa.div_cd='30' THEN '학부모'
ELSE '총계'
END AS divCd
*/
, CASE
WHEN aaaa.edu_slct_cd='10' THEN '온라인'
WHEN aaaa.edu_slct_cd='20' THEN '오프라인'
ELSE '합계'
END AS eduSlctCd
, CASE
WHEN aaaa.no3='10' THEN '횟수'
WHEN aaaa.no3='20' THEN '인원'
ELSE '합계'
END AS chasi
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt01 ELSE bbbb.cnt01 END, 0) mnt01
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt02 ELSE bbbb.cnt02 END, 0) mnt02
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt03 ELSE bbbb.cnt03 END, 0) mnt03
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt04 ELSE bbbb.cnt04 END, 0) mnt04
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt05 ELSE bbbb.cnt05 END, 0) mnt05
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt06 ELSE bbbb.cnt06 END, 0) mnt06
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt07 ELSE bbbb.cnt07 END, 0) mnt07
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt08 ELSE bbbb.cnt08 END, 0) mnt08
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt09 ELSE bbbb.cnt09 END, 0) mnt09
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt10 ELSE bbbb.cnt10 END, 0) mnt10
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt11 ELSE bbbb.cnt11 END, 0) mnt11
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt12 ELSE bbbb.cnt12 END, 0) mnt12
, NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mntSum ELSE bbbb.cntSum END, 0) mntSum
FROM (
SELECT a.edu_hope_yr
, b.div_cd
, c.edu_slct_cd
, d.no3
, e.edu_slct_area_cd
FROM
(
SELECT #mngNmbrYr# edu_hope_yr FROM DUAL
)a
,(
SELECT 10 div_cd FROM DUAL
UNION ALL SELECT 20 no1 FROM DUAL
UNION ALL SELECT 30 no1 FROM DUAL
UNION ALL SELECT 99 no1 FROM DUAL
)b
,(
SELECT 10 edu_slct_cd FROM DUAL
UNION ALL SELECT 20 no2 FROM DUAL
UNION ALL SELECT 99 no2 FROM DUAL
)c
,(
SELECT 10 no3 FROM DUAL
UNION ALL SELECT 20 no2 FROM DUAL
)d
,(
SELECT CODE AS edu_slct_area_cd
FROM LETTCCMMNDETAILCODE
WHERE code_id='VE0008'
UNION ALL
SELECT '999'
FROM DUAL
)e
)aaaa
LEFT OUTER JOIN
(
SELECT *
FROM (
/* 전체 집계 */
SELECT edu_hope_yr, '99' div_cd
, '99' edu_slct_cd
, '999' edu_slct_area_cd
, SUM(mnt01) AS mnt01
, SUM(mnt02) AS mnt02
, SUM(mnt03) AS mnt03
, SUM(mnt04) AS mnt04
, SUM(mnt05) AS mnt05
, SUM(mnt06) AS mnt06
, SUM(mnt07) AS mnt07
, SUM(mnt08) AS mnt08
, SUM(mnt09) AS mnt09
, SUM(mnt10) AS mnt10
, SUM(mnt11) AS mnt11
, SUM(mnt12) AS mnt12
, SUM(mntSum) AS mntSum
, SUM(cnt01) AS cnt01
, SUM(cnt02) AS cnt02
, SUM(cnt03) AS cnt03
, SUM(cnt04) AS cnt04
, SUM(cnt05) AS cnt05
, SUM(cnt06) AS cnt06
, SUM(cnt07) AS cnt07
, SUM(cnt08) AS cnt08
, SUM(cnt09) AS cnt09
, SUM(cnt10) AS cnt10
, SUM(cnt11) AS cnt11
, SUM(cnt12) AS cnt12
, SUM(cntSum) AS cntSum
FROM (
SELECT aa.edu_hope_yr, aa.div_cd, aa.edu_slct_cd, aa.edu_slct_area_cd
, SUM(DECODE(aa.edu_hope_dt,'01',aa.prsnl,0)) AS mnt01
, SUM(DECODE(aa.edu_hope_dt,'02',aa.prsnl,0)) AS mnt02
, SUM(DECODE(aa.edu_hope_dt,'03',aa.prsnl,0)) AS mnt03
, SUM(DECODE(aa.edu_hope_dt,'04',aa.prsnl,0)) AS mnt04
, SUM(DECODE(aa.edu_hope_dt,'05',aa.prsnl,0)) AS mnt05
, SUM(DECODE(aa.edu_hope_dt,'06',aa.prsnl,0)) AS mnt06
, SUM(DECODE(aa.edu_hope_dt,'07',aa.prsnl,0)) AS mnt07
, SUM(DECODE(aa.edu_hope_dt,'08',aa.prsnl,0)) AS mnt08
, SUM(DECODE(aa.edu_hope_dt,'09',aa.prsnl,0)) AS mnt09
, SUM(DECODE(aa.edu_hope_dt,'10',aa.prsnl,0)) AS mnt10
, SUM(DECODE(aa.edu_hope_dt,'11',aa.prsnl,0)) AS mnt11
, SUM(DECODE(aa.edu_hope_dt,'12',aa.prsnl,0)) AS mnt12
, SUM(DECODE(aa.edu_hope_dt,'01',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'02',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'03',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'04',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'05',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'06',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'07',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'08',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'09',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'10',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'11',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'12',aa.prsnl,0)) AS mntSum
, SUM(DECODE(aa.edu_hope_dt,'01',1,0)) AS cnt01
, SUM(DECODE(aa.edu_hope_dt,'02',1,0)) AS cnt02
, SUM(DECODE(aa.edu_hope_dt,'03',1,0)) AS cnt03
, SUM(DECODE(aa.edu_hope_dt,'04',1,0)) AS cnt04
, SUM(DECODE(aa.edu_hope_dt,'05',1,0)) AS cnt05
, SUM(DECODE(aa.edu_hope_dt,'06',1,0)) AS cnt06
, SUM(DECODE(aa.edu_hope_dt,'07',1,0)) AS cnt07
, SUM(DECODE(aa.edu_hope_dt,'08',1,0)) AS cnt08
, SUM(DECODE(aa.edu_hope_dt,'09',1,0)) AS cnt09
, SUM(DECODE(aa.edu_hope_dt,'10',1,0)) AS cnt10
, SUM(DECODE(aa.edu_hope_dt,'11',1,0)) AS cnt11
, SUM(DECODE(aa.edu_hope_dt,'12',1,0)) AS cnt12
, SUM(DECODE(aa.edu_hope_dt,'01',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'02',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'03',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'04',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'05',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'06',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'07',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'08',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'09',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'10',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'11',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'12',1,0)) AS cntSum
FROM (
SELECT
SUBSTR(b.edu_hope_dt,1,4) AS edu_hope_yr
, SUBSTR(b.edu_hope_dt,6,2) AS edu_hope_dt
, b.prsnl
, a.edu_slct_cd
, b.div_cd
, a.edu_slct_area_cd
FROM
/*
ve_lctr_stng d,
*/
ve_edu_chasi_instr_asgnm c ,
ve_edu_chasi b ,
ve_edu_aplct a
WHERE 1 =1
AND SUBSTR(b.edu_hope_dt,1,4)=#mngNmbrYr#
AND b.edu_aplct_ord =c.edu_aplct_ord
AND b.edu_chasi_ord =c.edu_chasi_ord
AND b.edu_aplct_ord =a.edu_aplct_ord
AND NVL(a.use_yn,'Y') ='Y'
AND a.aprvl_cd = '60'
AND c.asgnm_aprvl_cd = '30'
AND a.lctr_div_cd =#lctrDivCd#
)aa
GROUP BY aa.edu_hope_yr, aa.div_cd, aa.edu_slct_cd, aa.edu_slct_area_cd
)aaa
GROUP BY edu_hope_yr
UNION ALL
/* 구분별 집계 */
SELECT edu_hope_yr, '99' div_cd
, aaa.edu_slct_cd
, aaa.edu_slct_area_cd
, SUM(mnt01) AS mnt01
, SUM(mnt02) AS mnt02
, SUM(mnt03) AS mnt03
, SUM(mnt04) AS mnt04
, SUM(mnt05) AS mnt05
, SUM(mnt06) AS mnt06
, SUM(mnt07) AS mnt07
, SUM(mnt08) AS mnt08
, SUM(mnt09) AS mnt09
, SUM(mnt10) AS mnt10
, SUM(mnt11) AS mnt11
, SUM(mnt12) AS mnt12
, SUM(mntSum) AS mntSum
, SUM(cnt01) AS cnt01
, SUM(cnt02) AS cnt02
, SUM(cnt03) AS cnt03
, SUM(cnt04) AS cnt04
, SUM(cnt05) AS cnt05
, SUM(cnt06) AS cnt06
, SUM(cnt07) AS cnt07
, SUM(cnt08) AS cnt08
, SUM(cnt09) AS cnt09
, SUM(cnt10) AS cnt10
, SUM(cnt11) AS cnt11
, SUM(cnt12) AS cnt12
, SUM(cntSum) AS cntSum
FROM (
SELECT aa.edu_hope_yr, aa.div_cd, aa.edu_slct_cd, aa.edu_slct_area_cd
, SUM(DECODE(aa.edu_hope_dt,'01',aa.prsnl,0)) AS mnt01
, SUM(DECODE(aa.edu_hope_dt,'02',aa.prsnl,0)) AS mnt02
, SUM(DECODE(aa.edu_hope_dt,'03',aa.prsnl,0)) AS mnt03
, SUM(DECODE(aa.edu_hope_dt,'04',aa.prsnl,0)) AS mnt04
, SUM(DECODE(aa.edu_hope_dt,'05',aa.prsnl,0)) AS mnt05
, SUM(DECODE(aa.edu_hope_dt,'06',aa.prsnl,0)) AS mnt06
, SUM(DECODE(aa.edu_hope_dt,'07',aa.prsnl,0)) AS mnt07
, SUM(DECODE(aa.edu_hope_dt,'08',aa.prsnl,0)) AS mnt08
, SUM(DECODE(aa.edu_hope_dt,'09',aa.prsnl,0)) AS mnt09
, SUM(DECODE(aa.edu_hope_dt,'10',aa.prsnl,0)) AS mnt10
, SUM(DECODE(aa.edu_hope_dt,'11',aa.prsnl,0)) AS mnt11
, SUM(DECODE(aa.edu_hope_dt,'12',aa.prsnl,0)) AS mnt12
, SUM(DECODE(aa.edu_hope_dt,'01',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'02',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'03',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'04',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'05',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'06',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'07',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'08',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'09',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'10',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'11',aa.prsnl,0))
+ SUM(DECODE(aa.edu_hope_dt,'12',aa.prsnl,0)) AS mntSum
, SUM(DECODE(aa.edu_hope_dt,'01',1,0)) AS cnt01
, SUM(DECODE(aa.edu_hope_dt,'02',1,0)) AS cnt02
, SUM(DECODE(aa.edu_hope_dt,'03',1,0)) AS cnt03
, SUM(DECODE(aa.edu_hope_dt,'04',1,0)) AS cnt04
, SUM(DECODE(aa.edu_hope_dt,'05',1,0)) AS cnt05
, SUM(DECODE(aa.edu_hope_dt,'06',1,0)) AS cnt06
, SUM(DECODE(aa.edu_hope_dt,'07',1,0)) AS cnt07
, SUM(DECODE(aa.edu_hope_dt,'08',1,0)) AS cnt08
, SUM(DECODE(aa.edu_hope_dt,'09',1,0)) AS cnt09
, SUM(DECODE(aa.edu_hope_dt,'10',1,0)) AS cnt10
, SUM(DECODE(aa.edu_hope_dt,'11',1,0)) AS cnt11
, SUM(DECODE(aa.edu_hope_dt,'12',1,0)) AS cnt12
, SUM(DECODE(aa.edu_hope_dt,'01',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'02',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'03',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'04',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'05',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'06',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'07',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'08',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'09',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'10',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'11',1,0))
+ SUM(DECODE(aa.edu_hope_dt,'12',1,0)) AS cntSum
FROM (
SELECT
SUBSTR(b.edu_hope_dt,1,4) AS edu_hope_yr
, SUBSTR(b.edu_hope_dt,6,2) AS edu_hope_dt
, b.prsnl
, a.edu_slct_cd
, b.div_cd
, a.edu_slct_area_cd
FROM
/*
ve_lctr_stng d,
*/
ve_edu_chasi_instr_asgnm c ,
ve_edu_chasi b ,
ve_edu_aplct a
WHERE 1 =1
AND SUBSTR(b.edu_hope_dt,1,4)=#mngNmbrYr#
AND b.edu_aplct_ord =c.edu_aplct_ord
AND b.edu_chasi_ord =c.edu_chasi_ord
AND b.edu_aplct_ord =a.edu_aplct_ord
AND NVL(a.use_yn,'Y') ='Y'
AND a.aprvl_cd = '60'
AND c.asgnm_aprvl_cd = '30'
AND a.lctr_div_cd =#lctrDivCd#
)aa
GROUP BY aa.edu_hope_yr, aa.div_cd, aa.edu_slct_cd, aa.edu_slct_area_cd
)aaa
GROUP BY edu_hope_yr, aaa.edu_slct_cd, aaa.edu_slct_area_cd
)aaaa
)bbbb
ON(
1=1
AND aaaa.edu_hope_yr=bbbb.edu_hope_yr
AND aaaa.div_cd=bbbb.div_cd
AND aaaa.edu_slct_cd=bbbb.edu_slct_cd
AND aaaa.edu_slct_area_cd=bbbb.edu_slct_area_cd
)
LEFT OUTER JOIN LETTCCMMNDETAILCODE CCCC ON
(1=1
AND cccc.code_id='VE0008'
AND aaaa.edu_slct_area_cd=cccc.code
)
WHERE aaaa.div_cd='99' /* 필터를 위한 고정값 */
AND aaaa.no3 = #no3# /* 10-횟수, 20-인원 */
AND (
(
/* 온라인 오프라인 데이터를 위한 필터 */
aaaa.edu_slct_cd IN('10','20')
AND cccc.code_id IS NOT null
)
OR (
/* 합계 결과 조절을 위한 필터 */
aaaa.edu_slct_cd IN('99')
AND cccc.code_id IS null
)
)
ORDER BY aaaa.edu_hope_yr
, aaaa.no3
, DECODE(aaaa.div_cd,'99','00',aaaa.div_cd)
, DECODE(aaaa.edu_slct_cd,'99','00',DECODE(aaaa.edu_slct_cd,'20','05',aaaa.edu_slct_cd)) DESC
</select>
</sqlMap>

View File

@ -314,8 +314,22 @@
UNION ALL SELECT '07' FROM DUAL
UNION ALL SELECT '08' FROM DUAL
UNION ALL SELECT '09' FROM DUAL
UNION ALL SELECT '10' FROM DUAL
UNION ALL SELECT '11' FROM DUAL
UNION ALL SELECT '12' FROM DUAL
UNION ALL SELECT '13' FROM DUAL
UNION ALL SELECT '14' FROM DUAL
UNION ALL SELECT '15' FROM DUAL
UNION ALL SELECT '16' FROM DUAL
UNION ALL SELECT '17' FROM DUAL
UNION ALL SELECT '18' FROM DUAL
UNION ALL SELECT '19' FROM DUAL
UNION ALL SELECT '20' FROM DUAL
UNION ALL SELECT '0' FROM DUAL
)b
WHERE to_char(SYSDATE, 'yyyy') >= concat(round(a.stndrd_yr * 1 + b.stndrd_mnt * 1 - 1), '')
ORDER BY a.stndrd_yr*1+b.stndrd_mnt*1
</select>

View File

@ -139,7 +139,8 @@
<select class="sel_type1" name="mngNmbrYr" id="mngNmbrYr" title="줄 선택" style="width: 140px">
<c:forEach var="list" items="${selectStngYrList}" varStatus="status">
<c:if test="${list.stngYr eq vEEduAplctVO.mngNmbrYr}">
<c:if test="${list.stngYr eq vEEduAplctVO.mngNmbrYr
or (empty vEEduAplctVO.mngNmbrYr and list.useYn eq '1')}">
<option value='${list.stngYr}' selected>${list.stngYr*1}년</option>
</c:if>
<c:if test="${list.stngYr ne vEEduAplctVO.mngNmbrYr}">
@ -153,7 +154,13 @@
</div>
</div>
</div>
<!-- //list_top -->
<!-- //list_top -->
<c:if test="${not empty vEEduAplctVO.mngNmbrYr}">
<!-- list util -->
<div class="list_util">
@ -275,6 +282,7 @@
</div>
<!-- //list -->
</c:if>
</div>
</div>
</div>

View File

@ -0,0 +1,551 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<%
/**
* @Class Name : newEduPrfrmMngList.jsp
* @Description : 교육신청관리 > 교육실적통계 (new 2024-01-10)
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.14 조용준 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
});
function press(event) {
if (event.keyCode==13) {
fncGoList();
}
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
if($(this).prop('tagName') == 'SELECT'){
if($(this).attr('name').indexOf('Month') != -1){
$(this).val(new Date().getMonth()+1);
}else if($(this).attr('name').indexOf('Year') != -1){
$(this).val(new Date().getFullYear());
}else{
$(this).prop("selectedIndex", 0);
}
}else{
$(this).val('');
}
});
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/newEduPrfrmMngList.do'/>";
listForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncGoDetail(eduAplctOrd){
var listForm = document.listForm ;
listForm.eduAplctOrd.value = eduAplctOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAsgnmCnfrmMngDetail.do'/>";
listForm.submit();
}
function excelDownLoad_no1(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no1.do'/>";
listForm.submit();
}
function excelDownLoad_no2_no3(p_no3){
var listForm = document.listForm ;
listForm.no3.value = p_no3;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no2_no3.do'/>";
listForm.submit();
}
function excelDownLoadArea(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAreaExcelDownLoad.do'/>";
listForm.submit();
}
// 강사 거리계산
function fncInstrDstncInfo() {
var form = document.listForm ;
form.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopup.do'/>";
window.open("#", "_dstncPop", "scrollbars = no, top=100px, left=100px, height=750px, width=1200px");
form.target = "_dstncPop";
form.submit();
form.target = "_self";
}
</script>
<title>교육확정관리</title>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" value="" />
<input type="hidden" name="no3" value="" />
<input type="hidden" name="lctrDivCd" value="10" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육실적통계</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>청소년 찾아가는 저작권 교육</p>
</li>
<li><span class="cur_nav">교육실적통계</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_top -->
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>구분</p>
</div>
<div class="util_right">
<select class="sel_type1" name="mngNmbrYr" id="mngNmbrYr" title="줄 선택" style="width: 140px">
<c:forEach var="list" items="${selectStngYrList}" varStatus="status">
<c:if test="${list.stngYr eq vEEduAplctVO.mngNmbrYr
or (empty vEEduAplctVO.mngNmbrYr and list.useYn eq '1')}">
<option value='${list.stngYr}' selected>${list.stngYr*1}년</option>
</c:if>
<c:if test="${list.stngYr ne vEEduAplctVO.mngNmbrYr}">
<option value='${list.stngYr}'>${list.stngYr*1}년</option>
</c:if>
</c:forEach>
</select>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
</div>
</div>
<!-- //list_top -->
<c:if test="${not empty vEEduAplctVO.mngNmbrYr}">
<!-- list util -->
<div class="list_util">
<!--
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
-->
<p class="list_util_p"></p>
<div>
*교육신청과 강사배정이 모두 확정된 데이터 기준
</div>
</div>
<!-- list util -->
<div class="list_util">
<!--
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
-->
<p class="list_util_p">
①월별 횟수/교육인원
</p>
<div>
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoadArea();">엑셀 다운로드(강의지역)</button> -->
<button type="button" class="btn_down_excel" onclick="excelDownLoad_no1();">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<%-- <col style="width: 10%"> --%>
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<!-- <th>대상</th> -->
<th>구분</th>
<th>횟수/인원</th>
<th>1월</th>
<th>2월</th>
<th>3월</th>
<th>4월</th>
<th>5월</th>
<th>6월</th>
<th>7월</th>
<th>8월</th>
<th>9월</th>
<th>10월</th>
<th>11월</th>
<th>12월</th>
<th>합계</th>
</tr>
</thead>
<tbody>
<c:set var="title1" value="" />
<c:set var="title2" value="" />
<c:forEach var="list" items="${list_no1}" varStatus="status">
<tr>
<!--
<td>
<c:choose>
<c:when test="${list.divCd eq title1}">
</c:when>
<c:otherwise>
<c:out value="${list.divCd}"/>
</c:otherwise>
</c:choose>
</td>
-->
<td>
<c:choose>
<c:when test="${list.eduSlctCd eq title2}">
</c:when>
<c:otherwise>
<c:out value="${list.eduSlctCd}"/>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${list.chasi}"/></td>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt05}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt06}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt07}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt08}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt09}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt10}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt11}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt12}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mntSum}" pattern="#,###"/></td>
</tr>
<c:set var="title1" value="${list.divCd}" />
<c:set var="title2" value="${list.eduSlctCd}" />
</c:forEach>
<c:if test="${empty list_no1}">
<tr><td colspan="15"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- list util -->
<div class="list_util">
<!--
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
-->
<p class="list_util_p">
②월별 지역별 교육횟수
</p>
<div>
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoadArea();">엑셀 다운로드(강의지역)</button> -->
<button type="button" class="btn_down_excel" onclick="excelDownLoad_no2_no3('10');">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<%-- <col style="width: 10%"> --%>
<col style="width: 6%">
<col style="width: 10%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<!-- <th>대상</th> -->
<th>구분</th>
<th>지역</th>
<th>횟수/인원</th>
<th>1월</th>
<th>2월</th>
<th>3월</th>
<th>4월</th>
<th>5월</th>
<th>6월</th>
<th>7월</th>
<th>8월</th>
<th>9월</th>
<th>10월</th>
<th>11월</th>
<th>12월</th>
<th>합계</th>
</tr>
</thead>
<tbody>
<c:set var="title1" value="" />
<c:set var="title2" value="" />
<c:forEach var="list" items="${list_no2}" varStatus="status">
<tr>
<!--
<td>
<c:choose>
<c:when test="${list.divCd eq title1}">
</c:when>
<c:otherwise>
<c:out value="${list.divCd}"/>
</c:otherwise>
</c:choose>
</td>
-->
<td>
<c:choose>
<c:when test="${list.eduSlctCd eq title2}">
<c:out value="${list.eduSlctCd}"/>
</c:when>
<c:otherwise>
<c:out value="${list.eduSlctCd}"/>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${list.divCd}"/></td>
<td><c:out value="${list.chasi}"/></td>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt05}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt06}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt07}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt08}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt09}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt10}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt11}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt12}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mntSum}" pattern="#,###"/></td>
</tr>
<c:set var="title1" value="${list.divCd}" />
<c:set var="title2" value="${list.eduSlctCd}" />
</c:forEach>
<c:if test="${empty list_no2}">
<tr><td colspan="15"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- list util -->
<div class="list_util">
<!--
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
-->
<p class="list_util_p">
③월별 지역별 교육인원
</p>
<div>
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoadArea();">엑셀 다운로드(강의지역)</button> -->
<button type="button" class="btn_down_excel" onclick="excelDownLoad_no2_no3('20');">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<%-- <col style="width: 10%"> --%>
<col style="width: 6%">
<col style="width: 10%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<!-- <th>대상</th> -->
<th>구분</th>
<th>지역</th>
<th>횟수/인원</th>
<th>1월</th>
<th>2월</th>
<th>3월</th>
<th>4월</th>
<th>5월</th>
<th>6월</th>
<th>7월</th>
<th>8월</th>
<th>9월</th>
<th>10월</th>
<th>11월</th>
<th>12월</th>
<th>합계</th>
</tr>
</thead>
<tbody>
<c:set var="title1" value="" />
<c:set var="title2" value="" />
<c:forEach var="list" items="${list_no3}" varStatus="status">
<tr>
<!--
<td>
<c:choose>
<c:when test="${list.divCd eq title1}">
</c:when>
<c:otherwise>
<c:out value="${list.divCd}"/>
</c:otherwise>
</c:choose>
</td>
-->
<td>
<c:choose>
<c:when test="${list.eduSlctCd eq title2}">
<c:out value="${list.eduSlctCd}"/>
</c:when>
<c:otherwise>
<c:out value="${list.eduSlctCd}"/>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${list.divCd}"/></td>
<td><c:out value="${list.chasi}"/></td>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt05}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt06}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt07}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt08}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt09}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt10}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt11}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt12}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mntSum}" pattern="#,###"/></td>
</tr>
<c:set var="title1" value="${list.divCd}" />
<c:set var="title2" value="${list.eduSlctCd}" />
</c:forEach>
<c:if test="${empty list_no3}">
<tr><td colspan="15"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
</c:if>
</div>
</div>
</div>
</form:form>
</body>
</html>