/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1; string QueryCond2; string QueryCond3; string sKpcsValue; // Kpcs 구분에 의한 나누기 분모 값 udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; // kpcs 선택에 의한 분모 값 저장 한다. if (ckbKpcs.Checked == true) { sKpcsValue = "1000"; } else { sKpcsValue = "1"; } strSqlString.Append("SELECT (SELECT DATA_1 FROM MGCMTBLDAT@RPTTOMES WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND TABLE_NAME = 'H_CUSTOMER' AND KEY_1 = A.CUSTOMER) AS CUSTOMER, PKG, SAP_CODE" + "\n"); strSqlString.Append(" , RESV_FIELD_1 AS PIN_TYPE" + "\n"); strSqlString.Append(" , OPER" + "\n"); strSqlString.Append(" , ROUND(TTL_PLAN / " + sKpcsValue + ", 0) AS TTL_PLAN" + "\n"); strSqlString.Append(" , ROUND(TTL_DEF / " + sKpcsValue + ", 0) AS TTL_DEF" + "\n"); strSqlString.Append(" , DECODE(SEQ, 1, 'PLAN', 2, 'ACT', 3, 'BAL', 4, 'BOH') AS GUBUN" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D0, 2, SHP_D0, 3, BAL_D0, 4, WIP_D0) / " + sKpcsValue + ", 0) AS D0" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D1, 2, SHP_D1, 3, BAL_D1, 4, WIP_D1) / " + sKpcsValue + ", 0) AS D1" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D2, 2, SHP_D2, 3, BAL_D2, 4, WIP_D2) / " + sKpcsValue + ", 0) AS D2" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D3, 2, SHP_D3, 3, BAL_D3, 4, WIP_D3) / " + sKpcsValue + ", 0) AS D3" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D4, 2, SHP_D4, 3, BAL_D4, 4, WIP_D4) / " + sKpcsValue + ", 0) AS D4" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D5, 2, SHP_D5, 3, BAL_D5, 4, WIP_D5) / " + sKpcsValue + ", 0) AS D5" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D6, 2, SHP_D6, 3, BAL_D6, 4, WIP_D6) / " + sKpcsValue + ", 0) AS D6" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D7, 2, SHP_D7, 3, BAL_D7, 4, WIP_D7) / " + sKpcsValue + ", 0) AS D7" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D8, 2, SHP_D8, 3, BAL_D8, 4, WIP_D8) / " + sKpcsValue + ", 0) AS D8" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D9, 2, SHP_D9, 3, BAL_D9, 4, WIP_D9) / " + sKpcsValue + ", 0) AS D9" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D10, 2, SHP_D10, 3, BAL_D10, 4, WIP_D10) / " + sKpcsValue + ", 0) AS D10" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D11, 2, SHP_D11, 3, BAL_D11, 4, WIP_D11) / " + sKpcsValue + ", 0) AS D11" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D12, 2, SHP_D12, 3, BAL_D12, 4, WIP_D12) / " + sKpcsValue + ", 0) AS D12" + "\n"); strSqlString.Append(" , ROUND(DECODE(SEQ, 1, PLAN_D13, 2, SHP_D13, 3, BAL_D13, 4, WIP_D13) / " + sKpcsValue + ", 0) AS D13" + "\n"); strSqlString.Append(" FROM RSUMSCMDAT A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT DISTINCT MAT_GRP_10 AS PKG, VENDOR_ID" + "\n"); strSqlString.Append(" FROM MWIPMATDEF" + "\n"); strSqlString.Append(" WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "'" + "\n"); strSqlString.Append(" AND DELETE_FLAG = ' '" + "\n"); strSqlString.Append(" AND MAT_TYPE = 'FG'" + "\n"); if (txtProduct.Text.Trim() != "%" && txtProduct.Text.Trim() != "") { strSqlString.Append(" AND MAT_ID LIKE '" + txtProduct.Text + "'" + "\n"); } #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" , (SELECT LEVEL AS SEQ FROM DUAL CONNECT BY LEVEL <= 4) C" + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND A.SAP_CODE = B.VENDOR_ID" + "\n"); strSqlString.Append(" AND A.FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND A.PLAN_WEEK = '" + cdvFromToDate.HmFromWeek + "'" + "\n"); if (cdvOper.Text != "ALL" && cdvOper.Text != "") { strSqlString.AppendFormat(" AND A.OPER {0} " + "\n", cdvOper.SelectedValueToQueryString); } if (cdvGubun.Text != "ALL" && cdvGubun.Text != "") { strSqlString.AppendFormat(" AND DECODE(SEQ, 1, 'PLAN', 2, 'ACT', 3, 'BAL', 4, 'BOH') {0} " + "\n", cdvGubun.SelectedValueToQueryString); } strSqlString.Append(" ORDER BY CUSTOMER, PKG, SAP_CODE, OPER_SEQ DESC, SEQ" + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; //string QueryCond3 = null; //string sGroupBy = null; //string sHeader = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; strSqlString.AppendFormat(" SELECT {0}" + "\n", QueryCond2); strSqlString.Append(" , LOT_ID, MAT_ID, LOT_PRIORITY " + "\n"); if (cdvArea.Text == "HMK2") { strSqlString.Append(" , LOT_CMF_5, QTY_2, START_QTY, QTY" + "\n"); } else { strSqlString.Append(" , LOT_CMF_5, START_QTY, QTY" + "\n"); } strSqlString.Append(" , STOCK_IN_TIME" + "\n"); strSqlString.Append(" , SHIP_SITE" + "\n"); strSqlString.Append(" , FAB_SITE" + "\n"); strSqlString.Append(" , MAX(CODE)" + "\n"); strSqlString.Append(" , DELAYH" + "\n"); strSqlString.Append(" , DELAYD" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.AppendFormat(" SELECT {0} " + "\n", QueryCond1); strSqlString.AppendFormat(" , A.LOT_ID , A.MAT_ID , A.LOT_PRIORITY " + "\n"); if (cdvArea.Text == "HMK2") { strSqlString.AppendFormat(" , A.LOT_CMF_5 , A.QTY_2, A.CREATE_QTY_1 AS START_QTY, A.QTY_1 AS QTY " + "\n"); } else { strSqlString.AppendFormat(" , A.LOT_CMF_5 , A.CREATE_QTY_1 AS START_QTY, A.QTY_1 AS QTY " + "\n"); } strSqlString.AppendFormat(" , TO_DATE(A.OPER_IN_TIME,'YYYY-MM-DD HH24MISS') AS STOCK_IN_TIME " + "\n"); strSqlString.AppendFormat(" , A.LOT_CMF_11 AS SHIP_SITE, A.LOT_CMF_6 AS FAB_SITE " + "\n"); strSqlString.Append(" , ATT.ATTR_VALUE AS CODE " + "\n"); strSqlString.AppendFormat(" , TRUNC(to_char(sysdate - to_date(A.OPER_IN_TIME,'YYYY-MM-DD HH24MISS'))*24,2) AS DELAYH " + "\n"); strSqlString.AppendFormat(" , TRUNC(to_char(sysdate - to_date(A.OPER_IN_TIME,'YYYY-MM-DD HH24MISS')),2) AS DELAYD " + "\n"); strSqlString.AppendFormat(" FROM RWIPLOTSTS A, MWIPMATDEF B, MWIPOPRDEF C, MATRNAMSTS ATT " + "\n"); strSqlString.AppendFormat(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY(+) " + "\n"); strSqlString.Append(" AND A.FACTORY = C.FACTORY (+)" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID(+) " + "\n"); strSqlString.Append(" AND A.OPER = C.OPER(+) " + "\n"); strSqlString.Append(" AND A.LOT_ID = ATT.ATTR_KEY(+)" + "\n"); strSqlString.Append(" AND A.FACTORY = ATT.FACTORY(+)" + "\n"); strSqlString.Append(" AND A.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND A.LOT_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND A.OWNER_CODE = 'PROD'" + "\n"); strSqlString.Append(" AND B.MAT_VER(+) = 1 " + "\n"); strSqlString.AppendFormat(" AND C.AREA_ID = '{0}' " + "\n", CmnFunction.Trim(cdvArea.Text)); strSqlString.Append(" AND ATT.ATTR_TYPE(+) = 'LOT_SEC_INFO' " + "\n"); strSqlString.Append(" AND ATT.ATTR_NAME(+) = 'NCFCODE' " + "\n"); // Product if (txtProduct.Text.Trim() != "%" && txtProduct.Text.Trim() != "") { strSqlString.AppendFormat(" AND B.MAT_ID LIKE '{0}'" + "\n", txtProduct.Text); } // Lot Type if (cdvType.Text != "ALL" && cdvType.Text.Trim() != "") { strSqlString.Append(" AND A.LOT_CMF_5 " + cdvType.SelectedValueToQueryString + " \n"); } // Lot ID if (txtLotID.Text.Trim() != "") { strSqlString.AppendFormat(" AND A.LOT_ID = '" + txtLotID.Text + "' " + "\n"); } strSqlString.AppendFormat(" AND A.OWNER_CODE = 'PROD'" + "\n"); if (cboDelayDay.Text.ToString().Trim().Length > 0) { strSqlString.AppendFormat(" AND TRUNC(to_char(sysdate - to_date(A.OPER_IN_TIME,'YYYY-MM-DD HH24MISS')),1) > " + cboDelayDay.Text.ToString().Trim() + "\n"); } #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } strSqlString.Append(" )" + "\n"); strSqlString.AppendFormat("GROUP BY {0}" + "\n", QueryCond2); strSqlString.Append(" , LOT_ID, MAT_ID, LOT_PRIORITY " + "\n"); if (cdvArea.Text == "HMK2") { strSqlString.Append(" , LOT_CMF_5, QTY_2, START_QTY, QTY" + "\n"); } else { strSqlString.Append(" , LOT_CMF_5, START_QTY, QTY" + "\n"); } strSqlString.Append(" , STOCK_IN_TIME" + "\n"); strSqlString.Append(" , SHIP_SITE" + "\n"); strSqlString.Append(" , FAB_SITE" + "\n"); strSqlString.Append(" , DELAYH" + "\n"); strSqlString.Append(" , DELAYD" + "\n"); strSqlString.AppendFormat("ORDER BY {0}" + "\n", QueryCond2); strSqlString.Append(" , LOT_ID, MAT_ID, LOT_PRIORITY, LOT_CMF_5" + "\n"); #endregion if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; string QueryCond4 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; QueryCond4 = tableForm.SelectedValue4ToQueryContainNull; string strFromDate = udcFromToDate.ExactFromDate; string strToDate = udcFromToDate.ExactToDate; strSqlString.AppendFormat("SELECT {0},AA.CLEAR_TIME,AA.CNT, " + "\n", QueryCond4); strSqlString.Append("ROUND(AA.CLEAR_TIME / AA.CNT, 2) AS AVG" + "\n"); strSqlString.Append("FROM (" + "\n"); strSqlString.AppendFormat(" SELECT {0}, " + "\n", QueryCond1); strSqlString.Append(" SUM(CLEAR_TIME) AS CLEAR_TIME," + "\n"); strSqlString.Append(" SUM(CNT) AS CNT" + "\n"); strSqlString.Append(" FROM (SELECT RES.FACTORY AS FACTORY," + "\n"); strSqlString.Append(" RES.RES_STS_8 AS OPER," + "\n"); strSqlString.Append(" RES.RES_ID AS RES_ID," + "\n"); strSqlString.Append(" RES.RES_GRP_5 AS MAKE_MODEL," + "\n"); strSqlString.Append(" RES.RES_GRP_6 AS MODEL," + "\n"); strSqlString.Append(" ROUND((VAL.CLEAR_TIME / 60), 2) AS CLEAR_TIME," + "\n"); strSqlString.Append(" VAL.CNT AS CNT," + "\n"); strSqlString.Append(" ROUND(VAL.CLEAR_TIME / VAL.CNT , 2) AS AVG" + "\n"); strSqlString.Append(" FROM MRASRESDEF RES," + "\n"); strSqlString.Append(" (SELECT HIS.RES_ID AS RES_ID," + "\n"); strSqlString.Append(" DEF.RES_GRP_5 AS MODEL," + "\n"); strSqlString.Append(" SUM(HIS.PERIOD) AS CLEAR_TIME," + "\n"); strSqlString.Append(" COUNT(*) AS CNT" + "\n"); strSqlString.Append(" FROM (SELECT FACTORY," + "\n"); strSqlString.Append(" RES_ID," + "\n"); strSqlString.Append(" ALARM_CAT," + "\n"); strSqlString.Append(" ALARM_DESC," + "\n"); strSqlString.Append(" TRAN_TIME," + "\n"); strSqlString.Append(" PERIOD" + "\n"); //strSqlString.Append(" FROM CRASALMHIS@RPTTOMES" + "\n"); strSqlString.Append(" FROM MRASALMHIS@RPTTOMES" + "\n"); strSqlString.AppendFormat(" WHERE TRAN_TIME BETWEEN '{0}' AND '{1}' " + "\n", strFromDate, strToDate); //strSqlString.Append(" AND CLEAR_TIME > 0 " + "\n"); strSqlString.Append(" AND PERIOD > 0 " + "\n"); strSqlString.Append(" AND UP_DOWN_FLAG = 'U' " + "\n"); strSqlString.Append(" AND ALARM_USE = 'Y' " + "\n"); if (cdvRes_ID.Text != "" || cdvRes_ID.Text != "ALL") { //strSqlString.AppendFormat(" AND RES_ID = '{0}' " + "\n", cdvRes_ID.Text); strSqlString.AppendFormat(" AND RES_ID " + cdvRes_ID.SelectedValueToQueryString + "\n"); } strSqlString.Append(" GROUP BY FACTORY, RES_ID, ALARM_CAT, ALARM_DESC, TRAN_TIME, PERIOD) HIS," + "\n"); strSqlString.Append(" (SELECT RES_ID," + "\n"); strSqlString.Append(" RES_GRP_5," + "\n"); strSqlString.Append(" RES_GRP_6," + "\n"); strSqlString.Append(" RES_STS_8" + "\n"); strSqlString.Append(" FROM MRASRESDEF" + "\n"); if (cdvModel.Text != "" || cdvModel.Text != "ALL") { // strSqlString.AppendFormat(" WHERE RES_GRP_6 IN ('{0}') " + "\n", cdvModel.Text); strSqlString.AppendFormat(" WHERE RES_GRP_6 " + cdvModel.SelectedValueToQueryString + "\n"); } strSqlString.Append(" GROUP BY RES_ID, RES_GRP_5, RES_GRP_6, RES_STS_8) DEF" + "\n"); strSqlString.Append(" WHERE 1 = 1" + "\n"); strSqlString.Append(" AND HIS.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "'" + "\n"); strSqlString.Append(" AND HIS.RES_ID = DEF.RES_ID" + "\n"); strSqlString.Append(" GROUP BY HIS.RES_ID, DEF.RES_GRP_5" + "\n"); strSqlString.Append(" ORDER BY HIS.RES_ID, DEF.RES_GRP_5) VAL" + "\n"); strSqlString.Append(" WHERE 1 = 1" + "\n"); strSqlString.Append(" AND RES.RES_ID = VAL.RES_ID" + "\n"); strSqlString.Append(" GROUP BY RES.FACTORY, RES.RES_STS_8, RES.RES_ID, RES.RES_GRP_5, RES.RES_GRP_6, VAL.CLEAR_TIME, VAL.CNT)" + "\n"); strSqlString.Append(" WHERE 1 = 1" + "\n"); strSqlString.AppendFormat(" GROUP BY {0}", QueryCond2); strSqlString.AppendFormat(" ORDER BY {0}", QueryCond2); strSqlString.Append(") AA " + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary 4. SQL 쿼리 Build> /// /// </summary> /// <returns> strSqlString </returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; string sStart_Tran_Time = string.Empty; string sEnd_Tran_Time = string.Empty; string bbbb = string.Empty; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; sStart_Tran_Time = cdvFromToDate.ExactFromDate; sEnd_Tran_Time = cdvFromToDate.ExactToDate; strSqlString.AppendFormat("SELECT {0}, CODE " + "\n", QueryCond3); if (ckbKpcs.Checked == false) { for (int i = 0; i < selectDate.Length; i++) { strSqlString.Append(" , SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "02', QTY, 0)) AS T02_" + i + "\n"); strSqlString.Append(" , SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "05', QTY, 0)) AS T05_" + i + "\n"); strSqlString.Append(" , SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "11', QTY, 0)) AS T11_" + i + "\n"); strSqlString.Append(" , SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "16', QTY, 0)) AS T16_" + i + "\n"); strSqlString.Append(" , SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "19', QTY, 0)) AS T19_" + i + "\n"); strSqlString.Append(" , SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "22', QTY, 0)) AS T22_" + i + "\n"); } } else { for (int i = 0; i < selectDate.Length; i++) { strSqlString.Append(" , ROUND(SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "02', QTY, 0))/1000,1) AS T02_" + i + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "05', QTY, 0))/1000,1) AS T05_" + i + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "11', QTY, 0))/1000,1) AS T11_" + i + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "16', QTY, 0))/1000,1) AS T16_" + i + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "19', QTY, 0))/1000,1) AS T19_" + i + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(CREATE_DAY||TIME_BASE, '" + selectDate[i].ToString() + "22', QTY, 0))/1000,1) AS T22_" + i + "\n"); } } strSqlString.Append(" FROM (" + "\n"); strSqlString.AppendFormat(" SELECT {0} " + "\n", QueryCond2); strSqlString.Append(" , B.MAT_CMF_11 AS CODE, A.CREATE_DAY, A.TIME_BASE, SUM(A.QTY_1) AS QTY" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT LOT_ID, FACTORY, MAT_ID, QTY_1, OPER_IN_TIME, GET_WORK_DATE(OPER_IN_TIME,'D') AS CREATE_DAY" + "\n"); strSqlString.Append(" , CASE WHEN ('090000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '040000') THEN '05'" + "\n"); strSqlString.Append(" WHEN ('150000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '090000') THEN '11'" + "\n"); strSqlString.Append(" WHEN ('180000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '150000') THEN '16'" + "\n"); strSqlString.Append(" WHEN ('210000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '180000') THEN '19'" + "\n"); strSqlString.Append(" WHEN ('220000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '210000') THEN '22'" + "\n"); strSqlString.Append(" ELSE '02'" + "\n"); strSqlString.Append(" END AS TIME_BASE" + "\n"); strSqlString.Append(" FROM RWIPLOTHIS " + "\n"); strSqlString.Append(" WHERE FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); strSqlString.Append(" AND HIST_DEL_FLAG = ' ' " + "\n"); //strSqlString.Append(" AND MAT_VER = 1 " + "\n"); if (cdvFactory.txtValue == GlobalVariable.gsAssyDefaultFactory) { strSqlString.Append(" AND OLD_OPER IN ('A0000', 'A000N') " + "\n"); } else if (cdvFactory.txtValue == GlobalVariable.gsTestDefaultFactory) { strSqlString.Append(" AND OLE_OPER IN ('T0000', 'T000N') " + "\n"); } strSqlString.Append(" AND TRAN_CODE = 'CREATE' " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + sStart_Tran_Time + "' AND '" + sEnd_Tran_Time + "' " + "\n"); //strSqlString.Append(" AND LOT_CMF_5 " + cdvLotType.SelectedValueToQueryString + "\n"); if (cdvLotType.Text != "ALL") { strSqlString.Append(" AND LOT_CMF_5 LIKE '" + cdvLotType.Text + "'" + "\n"); } // 2010-03-22-임종우 : STOCK 에서 고객사로 RETURN 된 수량 제외 함.(윤수현 요청) ---시작--- strSqlString.Append(" UNION ALL " + "\n"); strSqlString.Append(" SELECT LOT_ID, '" + cdvFactory.txtValue + "' AS FACTORY, MAT_ID, -QTY_1 AS QTY_1, OPER_IN_TIME, GET_WORK_DATE(OPER_IN_TIME,'D') AS CREATE_DAY" + "\n"); strSqlString.Append(" , CASE WHEN ('090000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '040000') THEN '05'" + "\n"); strSqlString.Append(" WHEN ('150000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '090000') THEN '11'" + "\n"); strSqlString.Append(" WHEN ('180000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '150000') THEN '16'" + "\n"); strSqlString.Append(" WHEN ('210000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '180000') THEN '19'" + "\n"); strSqlString.Append(" WHEN ('220000' > SUBSTR(OPER_IN_TIME,9,6) AND SUBSTR(OPER_IN_TIME,9,6) >= '210000') THEN '22'" + "\n"); strSqlString.Append(" ELSE '02'" + "\n"); strSqlString.Append(" END AS TIME_BASE" + "\n"); strSqlString.Append(" FROM RWIPLOTHIS " + "\n"); strSqlString.Append(" WHERE FACTORY = 'RETURN' " + "\n"); strSqlString.Append(" AND OLD_FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); strSqlString.Append(" AND HIST_DEL_FLAG = ' ' " + "\n"); if (cdvFactory.txtValue == GlobalVariable.gsAssyDefaultFactory) { strSqlString.Append(" AND OLD_OPER IN ('A0000', 'A000N') " + "\n"); } else if (cdvFactory.txtValue == GlobalVariable.gsTestDefaultFactory) { strSqlString.Append(" AND OLE_OPER IN ('T0000', 'T000N') " + "\n"); } strSqlString.Append(" AND TRAN_CODE = 'SHIP' " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + sStart_Tran_Time + "' AND '" + sEnd_Tran_Time + "' " + "\n"); //strSqlString.Append(" AND LOT_CMF_5 " + cdvLotType.SelectedValueToQueryString + "\n"); if (cdvLotType.Text != "ALL") { strSqlString.Append(" AND LOT_CMF_5 LIKE '" + cdvLotType.Text + "'" + "\n"); } // 2010-03-22-임종우 : STOCK 에서 고객사로 RETURN 된 수량 제외 함.(윤수현 요청) ---끝--- strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , MWIPMATDEF B " + "\n"); strSqlString.Append(" WHERE A.FACTORY = B.FACTORY " + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID " + "\n"); strSqlString.Append(" AND B.MAT_VER = 1 " + "\n"); //상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } strSqlString.AppendFormat(" GROUP BY {0}, B.MAT_CMF_11, A.CREATE_DAY, A.TIME_BASE" + "\n", QueryCond2); strSqlString.Append(" )" + "\n"); strSqlString.AppendFormat("GROUP BY {0}, CODE" + "\n", QueryCond1); strSqlString.AppendFormat("ORDER BY {0}, CODE" + "\n", QueryCond1); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string strDecode = null; sBeforeDay = cboDay.Text; //추가 udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; // 쿼리 strDecode += cdvFromToDate.getDecodeQuery("SUM(DECODE(T_DAY", "RE_CNT/TOTAL * 100, 0))", "M").Replace(", SUM", " , SUM"); strSqlString.Append("SELECT " + QueryCond2 + " \n"); strSqlString.Append(strDecode); strSqlString.Append(" , SUM(RE_CNT/TOTAL) AS TOT " + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT VENDOR, MAT_TYPE, T_DAY, COUNT(*) AS TOTAL, SUM(DECODE(RE_CNT, 0, 0, 1)) AS RE_CNT" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT DAT.VENDOR, DAT.MAT_ID, DAT.MAT_TYPE, DAT.LOSS_CHAR, DAT.T_DAY" + "\n"); if (rdb1.Checked == true) // 수입검사 { strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT COUNT(*) " + "\n"); strSqlString.Append(" FROM CIQCEDCLSM@RPTTOMES" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN DAT.S_DAY AND DAT.E_DAY" + "\n"); strSqlString.Append(" AND LOSS_CHAR = DAT.LOSS_CHAR" + "\n"); strSqlString.Append(" AND VENDOR = DAT.VENDOR" + "\n"); strSqlString.Append(" AND MAT_ID = DAT.MAT_ID" + "\n"); strSqlString.Append(" ) AS RE_CNT" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT VENDOR, MAT_ID, MAT_TYPE, LOSS_CHAR, SUBSTR(TRAN_TIME, 1, 6) AS T_DAY" + "\n"); strSqlString.Append(" , TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR(TRAN_TIME, 1, 6), 'YYYYMM'), -" + cboDay.Text + "), 'YYYYMM') || '01000000' AS S_DAY" + "\n"); strSqlString.Append(" , TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR(TRAN_TIME, 1, 6), 'YYYYMM'), -1), 'YYYYMM') || '31235959' AS E_DAY" + "\n"); strSqlString.Append(" , COUNT(*)" + "\n"); strSqlString.Append(" FROM CIQCEDCLSM@RPTTOMES" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + cdvFromToDate.HmFromDay + "000000' AND '" + cdvFromToDate.HmToDay + "235959'" + "\n"); strSqlString.Append(" GROUP BY VENDOR, MAT_ID, MAT_TYPE, LOSS_CHAR, SUBSTR(TRAN_TIME, 1, 6)" + "\n"); strSqlString.Append(" ) DAT" + "\n"); } else // 공정검사 { strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT COUNT(*) " + "\n"); strSqlString.Append(" FROM CQCMNCRDAT@RPTTOMES" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN DAT.S_DAY AND DAT.E_DAY" + "\n"); strSqlString.Append(" AND RESV_CMF_2 = DAT.LOSS_CHAR" + "\n"); strSqlString.Append(" AND VENDOR = DAT.VENDOR" + "\n"); strSqlString.Append(" AND RESV_CMF_3 = DAT.MAT_ID" + "\n"); strSqlString.Append(" ) AS RE_CNT" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT VENDOR, RESV_CMF_3 AS MAT_ID, MAT_TYPE, RESV_CMF_2 AS LOSS_CHAR, SUBSTR(TRAN_TIME, 1, 6) AS T_DAY" + "\n"); strSqlString.Append(" , TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR(TRAN_TIME, 1, 6), 'YYYYMM'), -" + cboDay.Text + "), 'YYYYMM') || '01000000' AS S_DAY" + "\n"); strSqlString.Append(" , TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR(TRAN_TIME, 1, 6), 'YYYYMM'), -1), 'YYYYMM') || '31235959' AS E_DAY" + "\n"); strSqlString.Append(" , COUNT(*)" + "\n"); strSqlString.Append(" FROM CQCMNCRDAT@RPTTOMES" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + cdvFromToDate.HmFromDay + "000000' AND '" + cdvFromToDate.HmToDay + "235959'" + "\n"); strSqlString.Append(" AND HIST_DELETE_FLAG = ' '" + "\n"); strSqlString.Append(" AND NCR_TYPE = '공정불량NCR'" + "\n"); strSqlString.Append(" AND RESV_CMF_1 <> ' '" + "\n"); strSqlString.Append(" GROUP BY VENDOR, RESV_CMF_3, MAT_TYPE, RESV_CMF_2, SUBSTR(TRAN_TIME, 1, 6)" + "\n"); strSqlString.Append(" ) DAT" + "\n"); } strSqlString.Append(" GROUP BY DAT.VENDOR, DAT.MAT_ID, DAT.MAT_TYPE, DAT.LOSS_CHAR, DAT.T_DAY, DAT.S_DAY ,DAT.E_DAY" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" GROUP BY VENDOR, MAT_TYPE, T_DAY" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); // 업체 조회 if (cdvVendor.Text != "ALL" && cdvVendor.Text != "") { strSqlString.Append(" AND VENDOR " + cdvVendor.SelectedValueToQueryString + "\n"); } // 제품타입 조회 if (cdvMatType.Text != "ALL" && cdvMatType.Text != "") { strSqlString.Append(" AND MAT_TYPE " + cdvMatType.SelectedValueToQueryString + "\n"); } strSqlString.Append(" GROUP BY " + QueryCond1 + "\n"); strSqlString.Append(" HAVING SUM(RE_CNT/TOTAL) > 0 " + "\n"); strSqlString.Append(" ORDER BY " + QueryCond1 + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1; string QueryCond2; string sStart = null; string sEnd = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { sStart = cdvFromToDate.FromYearMonth.Value.ToString("yyyyMM"); sEnd = cdvFromToDate.ToYearMonth.Value.ToString("yyyyMM"); } else { sStart = cdvFromToDate.HmFromWeek; sEnd = cdvFromToDate.HmToWeek; } strSqlString.Append("SELECT A.KEY_1, A.KEY_2, A.OPER, A.OPER_DESC" + "\n"); strSqlString.Append(" , ROUND(AVG(A.UPEH), 0) AS UPEH" + "\n"); strSqlString.Append(" , A.USER_CAPA" + "\n"); strSqlString.Append(" , ROUND(AVG(A.UPOH), 0) AS UPOH" + "\n"); strSqlString.Append(" , A.OP_EFFICE, A.YIELD" + "\n"); for (int i = 0; i < selectDate.Length; i++) { strSqlString.Append(" , ROUND(SUM(CASE WHEN B.PLAN_DATE = '" + selectDate[i].ToString() + "' THEN A.K_TIME * B.PLAN_QTY ELSE 0 END), 2) AS HUMAN_TIME_" + i + "\n"); strSqlString.Append(" , ROUND(SUM(CASE WHEN B.PLAN_DATE = '" + selectDate[i].ToString() + "' THEN (A.K_TIME * B.PLAN_QTY) / B.WORK_DAY / 24 * 3 ELSE 0 END), 2) AS HUMAN_NEED_" + i + "\n"); } strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT KEY_1, KEY_2, KEY_3 AS OPER, DATA_1 AS OPER_DESC, DATA_3 AS USER_CAPA" + "\n"); strSqlString.Append(" , DATA_4 AS OP_EFFICE, DATA_5 AS YIELD" + "\n"); strSqlString.Append(" , B.MAT_GRP_1, B.MAT_GRP_5, B.PKG_CODE" + "\n"); strSqlString.Append(" , AVG(B.UPEH) AS UPEH, AVG(B.UPEH * DATA_3) AS UPOH" + "\n"); strSqlString.Append(" , AVG(CASE WHEN DATA_3 = ' ' OR DATA_4 = ' ' OR DATA_5 = ' ' THEN 0" + "\n"); strSqlString.Append(" WHEN B.UPEH IS NULL OR B.UPEH = 0 THEN 1000 / (B.OPER_AVG_UPEH * DATA_3 * (DATA_4/100) * (DATA_5/100)) * 1.15" + "\n"); strSqlString.Append(" ELSE 1000 / (B.UPEH * DATA_3 * (DATA_4/100) * (DATA_5/100)) * 1.15" + "\n"); strSqlString.Append(" END) AS K_TIME" + "\n"); strSqlString.Append(" , AVG(B.OPER_AVG_UPEH) AS OPER_AVG_UPEH" + "\n"); strSqlString.Append(" FROM MGCMTBLDAT A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT A.FACTORY, A.MAT_ID, A.OPER, A.UPEH, B.MAT_GRP_1, B.MAT_GRP_5, B.MAT_CMF_11" + "\n"); strSqlString.Append(" , CASE WHEN B.MAT_GRP_1 = 'HX' THEN B.MAT_ID ELSE B.MAT_CMF_11 END AS PKG_CODE" + "\n"); strSqlString.Append(" , AVG(A.UPEH) OVER(PARTITION BY A.OPER) AS OPER_AVG_UPEH" + "\n"); strSqlString.Append(" FROM CRASUPHDEF A" + "\n"); strSqlString.Append(" , MWIPMATDEF B" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID" + "\n"); strSqlString.Append(" AND A.FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND B.DELETE_FLAG = ' '" + "\n"); strSqlString.Append(" AND B.MAT_TYPE = 'FG'" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY(+)" + "\n"); strSqlString.Append(" AND A.KEY_3 = B.OPER(+)" + "\n"); strSqlString.Append(" AND A.FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND A.TABLE_NAME = 'H_RPT_HUMAN'" + "\n"); strSqlString.Append(" AND A.DATA_2 = 'Y'" + "\n"); strSqlString.Append(" GROUP BY KEY_1, KEY_2, KEY_3, DATA_1, DATA_3, DATA_4, DATA_5, B.MAT_GRP_1, B.MAT_GRP_5, PKG_CODE" + "\n"); strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT PLAN_DATE, PKG_CODE, OPER, MAT_GRP_1, MAT_GRP_5, WORK_DAY" + "\n"); strSqlString.Append(" , SUM(PLAN_QTY) AS PLAN_QTY" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT B.PLAN_DATE, B.MAT_KEY, B.MAT_ID, C.OPER, TO_NUMBER(PLAN_QTY) AS PLAN_QTY" + "\n"); strSqlString.Append(" , CASE WHEN A.MAT_GRP_1 = 'HX' THEN A.MAT_ID ELSE A.MAT_CMF_11 END AS PKG_CODE" + "\n"); strSqlString.Append(" , MAT_GRP_1, MAT_GRP_2, MAT_GRP_4, MAT_GRP_5, MAT_GRP_6, MAT_CMF_11, FIRST_FLOW" + "\n"); strSqlString.Append(" , NET_DIE, COMP_CNT, HX_COMP_MIN, HX_COMP_MAX" + "\n"); strSqlString.Append(" , CASE WHEN MAT_GRP_4 IN ('-', 'FD', 'FU') THEN '1'" + "\n"); strSqlString.Append(" WHEN MAT_GRP_4 IN ('DDP') THEN '2'" + "\n"); strSqlString.Append(" WHEN MAT_GRP_4 IN ('QDP') THEN '4'" + "\n"); strSqlString.Append(" WHEN MAT_GRP_4 IN ('ODP') THEN '8'" + "\n"); strSqlString.Append(" ELSE REGEXP_REPLACE(MAT_GRP_4, '[^[:digit:]]')" + "\n"); strSqlString.Append(" END AS STACK" + "\n"); //strSqlString.Append(" , CASE WHEN MAT_GRP_4 IN ('-', 'FD', 'FU') THEN '1'" + "\n"); //strSqlString.Append(" ELSE SUBSTR(MAT_GRP_4, 3) " + "\n"); //strSqlString.Append(" END AS STACK" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" , TO_CHAR(LAST_DAY(TO_DATE(B.PLAN_DATE, 'YYYYMM')), 'DD') AS WORK_DAY" + "\n"); strSqlString.Append(" FROM VWIPMATDEF A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT DISTINCT A.PLAN_MONTH AS PLAN_DATE" + "\n"); strSqlString.Append(" , CASE WHEN B.MAT_ID IS NULL THEN A.MAT_ID ELSE B.MCP_TO_PART END AS MAT_KEY" + "\n"); strSqlString.Append(" , CASE WHEN B.MAT_ID IS NULL THEN A.MAT_ID ELSE B.MAT_ID END AS MAT_ID" + "\n"); strSqlString.Append(" , A.RESV_FIELD1 / 1000 AS PLAN_QTY" + "\n"); strSqlString.Append(" FROM CWIPPLNMON A" + "\n"); strSqlString.Append(" , RWIPMCPBOM B" + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY(+)" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MCP_TO_PART(+)" + "\n"); strSqlString.Append(" AND A.FACTORY = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" AND A.PLAN_MONTH BETWEEN '" + sStart + "' AND '" + sEnd + "'" + "\n"); strSqlString.Append(" AND DECODE(A.RESV_FIELD1, ' ', 0, A.RESV_FIELD1) > 0 " + "\n"); } else { strSqlString.Append(" , 7 AS WORK_DAY" + "\n"); strSqlString.Append(" FROM VWIPMATDEF A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT DISTINCT A.PLAN_WEEK AS PLAN_DATE" + "\n"); strSqlString.Append(" , CASE WHEN B.MAT_ID IS NULL THEN A.MAT_ID ELSE B.MCP_TO_PART END AS MAT_KEY" + "\n"); strSqlString.Append(" , CASE WHEN B.MAT_ID IS NULL THEN A.MAT_ID ELSE B.MAT_ID END AS MAT_ID" + "\n"); strSqlString.Append(" , A.WW_QTY / 1000 AS PLAN_QTY" + "\n"); strSqlString.Append(" FROM RWIPPLNWEK A" + "\n"); strSqlString.Append(" , RWIPMCPBOM B" + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY(+)" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MCP_TO_PART(+)" + "\n"); strSqlString.Append(" AND A.FACTORY = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" AND A.PLAN_WEEK BETWEEN '" + sStart + "' AND '" + sEnd + "'" + "\n"); strSqlString.Append(" AND A.GUBUN = '3' " + "\n"); } strSqlString.Append(" ) B " + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT DISTINCT SUBSTR(PLNNR, 1, 4) AS FLOW, KTSCH AS OPER" + "\n"); strSqlString.Append(" FROM ZHPPT120@SAPREAL" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND ARBPL != 'DUMMY'" + "\n"); strSqlString.Append(" ) C " + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID" + "\n"); strSqlString.Append(" AND A.FIRST_FLOW = C.FLOW(+)" + "\n"); strSqlString.Append(" AND A.FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND A.DELETE_FLAG = ' ' " + "\n"); if (txtProduct.Text.Trim() != "%" && txtProduct.Text.Trim() != "") { strSqlString.AppendFormat(" AND A.MAT_ID LIKE '{0}'" + "\n", txtProduct.Text); } //상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND A.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND A.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND A.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND A.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND A.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND A.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND A.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND A.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND A.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } strSqlString.Append(" )" + "\n"); strSqlString.Append(" GROUP BY PLAN_DATE, PKG_CODE, OPER, MAT_GRP_1, MAT_GRP_5, WORK_DAY" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.PKG_CODE = B.PKG_CODE" + "\n"); strSqlString.Append(" AND A.OPER = B.OPER" + "\n"); strSqlString.Append(" AND A.MAT_GRP_1 = B.MAT_GRP_1" + "\n"); strSqlString.Append(" AND A.MAT_GRP_5 = B.MAT_GRP_5" + "\n"); if (cdvTeam.Text != "ALL" && cdvTeam.Text != "") { strSqlString.Append(" AND A.KEY_1 " + cdvTeam.SelectedValueToQueryString + "\n"); } if (cdvPart.Text != "ALL" && cdvPart.Text != "") { strSqlString.Append(" AND A.KEY_2 " + cdvPart.SelectedValueToQueryString + "\n"); } if (cdvOper.Text != "ALL" && cdvOper.Text != "") { strSqlString.Append(" AND A.OPER " + cdvOper.SelectedValueToQueryString + "\n"); } strSqlString.Append("GROUP BY A.KEY_1, A.KEY_2, A.OPER, A.OPER_DESC, A.USER_CAPA, A.OP_EFFICE, A.YIELD" + "\n"); strSqlString.Append("ORDER BY A.KEY_1, A.KEY_2, A.OPER, A.OPER_DESC, A.USER_CAPA, A.OP_EFFICE, A.YIELD" + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1; string QueryCond2; string QueryCond3; string Today; Today = cdvDate.Value.ToString("yyyyMMdd"); udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; strSqlString.AppendFormat("SELECT {0} " + "\n", QueryCond3); if (ckbWafer.Checked == false) { strSqlString.Append(" , 0 AS RTF_W2" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_W2, 0)) AS SOP_W2" + "\n"); strSqlString.Append(" , SUM(NVL(PLAN_RTF, 0)) AS RTF_W1 " + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_W1, 0) + (NVL(SHP_WEEK, 0) - NVL(SHP_D0, 0))) AS SOP_W1" + "\n"); strSqlString.Append(" , SUM(NVL(SHP_WEEK, 0)) AS SHP_WEEK" + "\n"); strSqlString.Append(" , SUM(NVL(PLAN_RTF, 0) - NVL(SHP_WEEK, 0)) AS RTF_DEF" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_W1, 0) - NVL(SHP_D0, 0)) AS SOP_DEF" + "\n"); strSqlString.Append(" , 0 AS RTF_CHIP" + "\n"); strSqlString.Append(" , SUM(CASE WHEN NVL(TEST_PLAN_W1, 0) - NVL(SHP_D0, 0) - NVL(TOTAL, 0) < 0 THEN 0" + "\n"); strSqlString.Append(" ELSE NVL(TEST_PLAN_W1, 0) - NVL(SHP_D0, 0) - NVL(TOTAL, 0) " + "\n"); strSqlString.Append(" END) AS SOP_CHIP" + "\n"); strSqlString.Append(" , SUM(NVL(ASSY_PLAN_D0, 0)) AS ASSY_PLAN_D0" + "\n"); strSqlString.Append(" , SUM(NVL(ISSUE_QTY, 0)) AS ISSUE_QTY" + "\n"); strSqlString.Append(" , SUM(NVL(ISSUE_QTY, 0) - NVL(ASSY_PLAN_D0, 0)) AS IN_DEF" + "\n"); strSqlString.Append(" , SUM(NVL(ASSY_PLAN_D1, 0)) AS ASSY_PLAN_D1" + "\n"); strSqlString.Append(" , SUM(NVL(ASSY_PLAN_D2, 0)) AS ASSY_PLAN_D2" + "\n"); strSqlString.Append(" , SUM(NVL(ASSY_PLAN_D3, 0)) AS ASSY_PLAN_D3" + "\n"); strSqlString.Append(" , SUM(NVL(TOTAL, 0)) AS TOTAL" + "\n"); strSqlString.Append(" , SUM(NVL(STOCK, 0)) AS STOCK" + "\n"); strSqlString.Append(" , SUM(NVL(LN, 0)) AS LN" + "\n"); strSqlString.Append(" , SUM(NVL(BG, 0)) AS BG" + "\n"); strSqlString.Append(" , SUM(NVL(LABEL, 0)) AS LABEL" + "\n"); strSqlString.Append(" , SUM(NVL(SAW, 0)) AS SAW" + "\n"); strSqlString.Append(" , SUM(NVL(UV, 0)) AS UV" + "\n"); strSqlString.Append(" , SUM(NVL(AVI, 0)) AS AVI" + "\n"); strSqlString.Append(" , SUM(NVL(PVI, 0)) AS PVI" + "\n"); strSqlString.Append(" , SUM(NVL(HMK3, 0)) AS HMK3" + "\n"); strSqlString.Append(" , SUM(NVL(PACKING, 0)) AS PACKING" + "\n"); strSqlString.Append(" , SUM(NVL(HMK4, 0)) AS HMK4" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_D0, 0)) AS TEST_PLAN_D0" + "\n"); strSqlString.Append(" , SUM(NVL(SHP_D0, 0)) AS SHP_D0" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_D0, 0) - NVL(SHP_D0, 0)) AS TODAY_DEF" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_D1, 0)) AS TEST_PLAN_D1" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_D2, 0)) AS TEST_PLAN_D2" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_D3, 0)) AS TEST_PLAN_D3" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_D4, 0)) AS TEST_PLAN_D4" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_D5, 0)) AS TEST_PLAN_D5" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_D6, 0)) AS TEST_PLAN_D6" + "\n"); strSqlString.Append(" , SUM(NVL(REV_PLAN, 0)) AS REV_PLAN" + "\n"); strSqlString.Append(" , SUM(NVL(SHP_D0, 0)) AS SHP_D0" + "\n"); strSqlString.Append(" , SUM(NVL(TEST_PLAN_D0, 0) + NVL(REV_PLAN, 0) - NVL(SHP_D0, 0)) AS REV_DEF" + "\n"); } else { strSqlString.Append(" , 0 AS RTF_W2" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(TEST_PLAN_W2,0) / NET_DIE)) AS SOP_W2" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(PLAN_RTF, 0) / NET_DIE)) AS RTF_W1" + "\n"); strSqlString.Append(" , SUM(CEIL((NVL(TEST_PLAN_W1, 0) + (NVL(SHP_WEEK, 0) - NVL(SHP_D0, 0))) / NET_DIE)) AS SOP_W1" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(SHP_WEEK, 0) / NET_DIE)) AS SHP_WEEK" + "\n"); strSqlString.Append(" , SUM(CEIL((NVL(PLAN_RTF, 0) - NVL(SHP_WEEK, 0)) / NET_DIE)) AS RTF_DEF" + "\n"); strSqlString.Append(" , SUM(CEIL((NVL(TEST_PLAN_W1, 0) - NVL(SHP_D0, 0)) / NET_DIE)) AS SOP_DEF" + "\n"); strSqlString.Append(" , 0 AS RTF_CHIP" + "\n"); strSqlString.Append(" , SUM(CASE WHEN NVL(TEST_PLAN_W1, 0) - NVL(SHP_D0, 0) - NVL(TOTAL, 0) < 0 THEN 0" + "\n"); strSqlString.Append(" ELSE CEIL((NVL(TEST_PLAN_W1, 0) - NVL(SHP_D0, 0) - NVL(TOTAL, 0)) / NET_DIE) " + "\n"); strSqlString.Append(" END) AS SOP_CHIP" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(ASSY_PLAN_D0, 0) / NET_DIE)) AS ASSY_PLAN_D0" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(ISSUE_QTY, 0) / NET_DIE)) AS ISSUE_QTY" + "\n"); strSqlString.Append(" , SUM(CEIL((NVL(ISSUE_QTY, 0) - NVL(ASSY_PLAN_D0, 0)) / NET_DIE)) AS IN_DEF" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(ASSY_PLAN_D1, 0) / NET_DIE)) AS ASSY_PLAN_D1" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(ASSY_PLAN_D2, 0) / NET_DIE)) AS ASSY_PLAN_D2" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(ASSY_PLAN_D3, 0) / NET_DIE)) AS ASSY_PLAN_D3" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(TOTAL, 0) / NET_DIE)) AS TOTAL" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(STOCK, 0) / NET_DIE)) AS STOCK" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(LN, 0) / NET_DIE)) AS LN" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(BG, 0) / NET_DIE)) AS BG" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(LABEL, 0) / NET_DIE)) AS LABEL" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(SAW, 0) / NET_DIE)) AS SAW" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(UV, 0) / NET_DIE)) AS UV" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(AVI, 0) / NET_DIE)) AS AVI" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(PVI, 0) / NET_DIE)) AS PVI" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(HMK3, 0) / NET_DIE)) AS HMK3" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(PACKING, 0) / NET_DIE)) AS PACKING" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(HMK4, 0) / NET_DIE)) AS HMK4" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(TEST_PLAN_D0, 0) / NET_DIE)) AS TEST_PLAN_D0" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(SHP_D0, 0) / NET_DIE)) AS SHP_D0" + "\n"); strSqlString.Append(" , SUM(CEIL((NVL(TEST_PLAN_D0, 0) - NVL(SHP_D0, 0)) / NET_DIE)) AS TODAY_DEF" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(TEST_PLAN_D1, 0) / NET_DIE)) AS TEST_PLAN_D1" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(TEST_PLAN_D2, 0) / NET_DIE)) AS TEST_PLAN_D2" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(TEST_PLAN_D3, 0) / NET_DIE)) AS TEST_PLAN_D3" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(TEST_PLAN_D4, 0) / NET_DIE)) AS TEST_PLAN_D4" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(TEST_PLAN_D5, 0) / NET_DIE)) AS TEST_PLAN_D5" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(TEST_PLAN_D6, 0) / NET_DIE)) AS TEST_PLAN_D6" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(REV_PLAN, 0) / NET_DIE)) AS REV_PLAN" + "\n"); strSqlString.Append(" , SUM(CEIL(NVL(SHP_D0, 0) / NET_DIE)) AS SHP_D0" + "\n"); strSqlString.Append(" , SUM(CEIL((NVL(TEST_PLAN_D0, 0) + NVL(REV_PLAN, 0) - NVL(SHP_D0, 0)) / NET_DIE)) AS REV_DEF" + "\n"); } strSqlString.Append(" , MAX(MAT.MAT_CMF_13) AS MAT_CMF_13" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT A.*" + "\n"); strSqlString.Append(" , TO_NUMBER(DECODE(A.MAT_CMF_13,' ', 1, A.MAT_CMF_13)) * 0.95 AS NET_DIE" + "\n"); strSqlString.Append(" FROM MWIPMATDEF A" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "'" + "\n"); strSqlString.Append(" AND MAT_ID LIKE '%UW_'" + "\n"); strSqlString.Append(" AND DELETE_FLAG = ' '" + "\n"); strSqlString.Append(" ) MAT" + "\n"); // 실적 strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT MAT_ID " + "\n"); strSqlString.Append(" , SUM(DECODE(WORK_DATE, '" + Today + "', S1_FAC_OUT_QTY_1 + S2_FAC_OUT_QTY_1 + S3_FAC_OUT_QTY_1 + S4_FAC_OUT_QTY_1, 0)) AS SHP_D0" + "\n"); strSqlString.Append(" , SUM(S1_FAC_OUT_QTY_1 + S2_FAC_OUT_QTY_1 + S3_FAC_OUT_QTY_1 + S4_FAC_OUT_QTY_1) AS SHP_WEEK" + "\n"); strSqlString.Append(" FROM RSUMFACMOV " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND CM_KEY_1 = '" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND CM_KEY_2 = 'PROD' " + "\n"); strSqlString.Append(" AND CM_KEY_3 LIKE 'P%' " + "\n"); strSqlString.Append(" AND MAT_ID LIKE '%UW_'" + "\n"); strSqlString.Append(" AND WORK_DATE BETWEEN '" + FindWeek.StartDay_ThisWeek + "' AND '" + Today + "' " + "\n"); strSqlString.Append(" GROUP BY MAT_ID " + "\n"); strSqlString.Append(" ) SHP" + "\n"); // ISSUE strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT MAT_ID " + "\n"); strSqlString.Append(" , SUM(S1_END_QTY_1+S2_END_QTY_1+S3_END_QTY_1+S1_END_RWK_QTY_1 + S2_END_RWK_QTY_1 + S3_END_RWK_QTY_1) AS ISSUE_QTY" + "\n"); strSqlString.Append(" FROM RSUMWIPMOV" + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND WORK_DATE = '" + Today + "'" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W' " + "\n"); strSqlString.Append(" AND OPER = 'A0000' " + "\n"); strSqlString.Append(" AND MAT_ID LIKE '%UW_' " + "\n"); strSqlString.Append(" GROUP BY MAT_ID " + "\n"); strSqlString.Append(" ) ISS" + "\n"); // 계획 strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT MAT_ID" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[0].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS ASSY_PLAN_D0" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[1].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS ASSY_PLAN_D1" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[2].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS ASSY_PLAN_D2" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[3].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS ASSY_PLAN_D3" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[0].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS TEST_PLAN_D0" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[1].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS TEST_PLAN_D1" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[2].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS TEST_PLAN_D2" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[3].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS TEST_PLAN_D3" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[4].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS TEST_PLAN_D4" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[5].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS TEST_PLAN_D5" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' AND PLAN_DAY = '" + DateArray2[6].ToString() + "' THEN PLAN_QTY ELSE 0 END) AS TEST_PLAN_D6 " + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' AND PLAN_DAY BETWEEN '" + FindWeek.StartDay_ThisWeek + "' AND '" + FindWeek.EndDay_ThisWeek + "' THEN PLAN_QTY ELSE 0 END) AS TEST_PLAN_W1 " + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' AND PLAN_DAY BETWEEN '" + FindWeek.StartDay_NextWeek + "' AND '" + FindWeek.EndDay_NextWeek + "' THEN PLAN_QTY ELSE 0 END) AS TEST_PLAN_W2 " + "\n"); // 금일조회 기준 if (DateTime.Now.ToString("yyyyMMdd") == Today) { strSqlString.Append(" FROM CWIPPLNDAY " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); } else// 금일이 아니면 스냅샷 떠놓은 테이블에서 가져옴. { strSqlString.Append(" FROM CWIPPLNSNP@RPTTOMES " + "\n"); strSqlString.Append(" WHERE SNAPSHOT_DAY = '" + Today + "'" + "\n"); } strSqlString.Append(" AND PLAN_DAY BETWEEN '" + FindWeek.StartDay_ThisWeek + "' AND '" + FindWeek.EndDay_NextWeek + "'" + "\n"); strSqlString.Append(" AND IN_OUT_FLAG = 'IN' " + "\n"); strSqlString.Append(" AND MAT_ID LIKE '%UW_'" + "\n"); strSqlString.Append(" GROUP BY MAT_ID" + "\n"); strSqlString.Append(" ) PLN" + "\n"); // 재공 strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT MAT_ID " + "\n"); strSqlString.Append(" , SUM(QTY_1) TOTAL " + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'A0000', QTY_1, 0)) STOCK" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'A0020', QTY_1, 0)) LN" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'A0040', QTY_1, 0)) BG" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'A0140', QTY_1, 0)) LABEL" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'A0200', QTY_1, 0)) SAW" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'A0250', QTY_1, 0)) UV" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'A0270', QTY_1, 0)) AVI" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'A2050', QTY_1, 'A2100', QTY_1, 'A2150', QTY_1, 0)) PVI" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'T0000', QTY_1, 0)) HMK3" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'T1300', QTY_1, 0)) PACKING" + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'TZ010', QTY_1, 0)) HMK4 " + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT *" + "\n"); // 금일조회 기준 if (DateTime.Now.ToString("yyyyMMdd") == Today) { strSqlString.Append(" FROM RWIPLOTSTS" + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); } else// 금일이 아니면 스냅샷 떠놓은 테이블에서 가져옴. { strSqlString.Append(" FROM RWIPLOTSTS_BOH" + "\n"); strSqlString.Append(" WHERE CUTOFF_DT = '" + Today + "22' " + "\n"); } strSqlString.Append(" AND FACTORY IN ('" + GlobalVariable.gsAssyDefaultFactory + "', '" + GlobalVariable.gsTestDefaultFactory + "')" + "\n"); strSqlString.Append(" AND LOT_DEL_FLAG = ' '" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); strSqlString.Append(" AND LOT_CMF_5 LIKE 'P%'" + "\n"); strSqlString.Append(" AND MAT_ID LIKE '%UW_'" + "\n"); strSqlString.Append(" ) " + "\n"); strSqlString.Append(" GROUP BY MAT_ID " + "\n"); strSqlString.Append(" ) WIP" + "\n"); // RTF strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT MAT_ID " + "\n"); strSqlString.Append(" , SUM(CASE WHEN TO_CHAR(TO_DATE('" + Today + "', 'YYYYMMDD'), 'D') IN ('6','7','1') THEN 0 " + "\n"); strSqlString.Append(" WHEN PLAN_DATE BETWEEN '" + FindWeek.StartDay_ThisWeek + "' AND '" + FindWeek_RTF.EndDay_ThisWeek + "' AND WW_RTF <> '-' THEN QTY_1 " + "\n"); strSqlString.Append(" ELSE 0 " + "\n"); strSqlString.Append(" END) AS PLAN_RTF " + "\n"); strSqlString.Append(" FROM CPLNSOPDAY@RPTTOMES " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND PLAN_DATE BETWEEN '" + FindWeek.StartDay_ThisWeek + "' AND '" + FindWeek.EndDay_ThisWeek + "' " + "\n"); strSqlString.Append(" AND MAT_ID LIKE '%UW_' " + "\n"); strSqlString.Append(" GROUP BY MAT_ID " + "\n"); strSqlString.Append(" ) RTF" + "\n"); // REV strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT KEY_2 AS MAT_ID " + "\n"); strSqlString.Append(" , SUM(DATA_1) AS REV_PLAN " + "\n"); strSqlString.Append(" FROM MGCMTBLDAT " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND TABLE_NAME = 'H_RPT_D1_REV_PLAN' " + "\n"); strSqlString.Append(" AND KEY_1 = '" + Today + "' " + "\n"); strSqlString.Append(" AND KEY_2 LIKE '%UW_' " + "\n"); strSqlString.Append(" GROUP BY KEY_2 " + "\n"); strSqlString.Append(" ) REV" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND MAT.MAT_ID = SHP.MAT_ID(+)" + "\n"); strSqlString.Append(" AND MAT.MAT_ID = ISS.MAT_ID(+)" + "\n"); strSqlString.Append(" AND MAT.MAT_ID = PLN.MAT_ID(+)" + "\n"); strSqlString.Append(" AND MAT.MAT_ID = WIP.MAT_ID(+)" + "\n"); strSqlString.Append(" AND MAT.MAT_ID = RTF.MAT_ID(+)" + "\n"); strSqlString.Append(" AND MAT.MAT_ID = REV.MAT_ID(+)" + "\n"); //상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } strSqlString.Append(" AND MAT.MAT_ID LIKE '" + txtProduct.Text + "'" + "\n"); strSqlString.AppendFormat(" GROUP BY {0}" + "\n", QueryCond1); strSqlString.Append(" HAVING SUM(NVL(TEST_PLAN_W2,0) + NVL(TEST_PLAN_W1,0) + NVL(SHP_WEEK,0) + NVL(SHP_D0,0) + NVL(TOTAL,0)" + "\n"); strSqlString.Append(" + NVL(ASSY_PLAN_D0, 0) + NVL(ASSY_PLAN_D1, 0) + NVL(ASSY_PLAN_D2, 0) + NVL(ASSY_PLAN_D3, 0) + NVL(ISSUE_QTY, 0) + NVL(TEST_PLAN_D0, 0)" + "\n"); strSqlString.Append(" + NVL(TEST_PLAN_D1, 0) + NVL(TEST_PLAN_D2, 0) + NVL(TEST_PLAN_D3, 0) + NVL(TEST_PLAN_D4, 0)" + "\n"); strSqlString.Append(" + NVL(TEST_PLAN_D5, 0) + NVL(TEST_PLAN_D6, 0)) > 0" + "\n"); strSqlString.AppendFormat(" ORDER BY {0}" + "\n", QueryCond1); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1; string QueryCond2; string QueryCond3; string strDecodeQuery = null; string sKpcsValue; // Kpcs 구분에 의한 나누기 분모 값 udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; // kpcs 선택에 의한 분모 값 저장 한다. if (ckbKpcs.Checked == true) { sKpcsValue = "1000"; } else { sKpcsValue = "1"; } #region 주간 조회 string sFrom = cdvFromToDate.FromWeek.SelectedValue.ToString(); string sTo = cdvFromToDate.ToWeek.SelectedValue.ToString(); string[] selectDate = cdvFromToDate.getSelectDate(); for (int i = 0; i < cdvFromToDate.SubtractBetweenFromToDate + 1; i++) { strDecodeQuery += " , ROUND(SUM(DECODE(WEEK, '" + selectDate[i].ToString() + "', QTY, 0)) / " + sKpcsValue + ",0) AS W" + i + "\n"; } strSqlString.AppendFormat("SELECT {0} " + "\n", QueryCond2); strSqlString.Append(" , ROUND(AVG(UPH.UPEH) * 24 * 7 * 0.7 / " + sKpcsValue + ", 0) AS CAPA" + "\n"); strSqlString.Append(strDecodeQuery); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT B.PLAN_YEAR || LPAD(B.PLAN_WEEK, 2, 0) AS WEEK" + "\n"); strSqlString.Append(" , A.RES_ID " + "\n"); strSqlString.Append(" , A.MAT_ID" + "\n"); strSqlString.Append(" , A.QTY" + "\n"); strSqlString.Append(" FROM CSUMRASMOV@RPTTOMES A" + "\n"); strSqlString.Append(" , MWIPCALDEF B" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.WORK_DAY = B.SYS_DATE " + "\n"); strSqlString.Append(" AND A.FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND B.PLAN_YEAR || LPAD(B.PLAN_WEEK, 2, 0) BETWEEN '" + sFrom + "' AND '" + sTo + "'" + "\n"); strSqlString.Append(" AND B.CALENDAR_ID = 'OTD' " + "\n"); strSqlString.Append(" ) DAT" + "\n"); strSqlString.Append(" , MRASRESDEF RES" + "\n"); strSqlString.Append(" , CRASUPHDEF UPH" + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND DAT.RES_ID = RES.RES_ID " + "\n"); strSqlString.Append(" AND RES.FACTORY = UPH.FACTORY(+) " + "\n"); strSqlString.Append(" AND RES.RES_STS_8 = UPH.OPER(+) " + "\n"); strSqlString.Append(" AND RES.RES_GRP_6 = UPH.RES_MODEL(+) " + "\n"); strSqlString.Append(" AND RES.RES_GRP_7 = UPH.UPEH_GRP(+) " + "\n"); strSqlString.Append(" AND RES.RES_STS_2 = UPH.MAT_ID(+) " + "\n"); strSqlString.Append(" AND RES.FACTORY = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" AND RES.RES_TYPE IN ('EQUIPMENT', 'LINE')" + "\n"); // 2017-05-29-정비재 : USE STATE가 "N"인 설비만 조회하기 위하여 추가함. strSqlString.Append(" AND RES.RES_CMF_9 = '" + (chkUseStateN.Checked == true ? "N" : "Y") + "'\n"); strSqlString.Append(" AND RES.DELETE_FLAG = ' '" + "\n"); strSqlString.Append(" AND RES.RES_ID NOT LIKE '%$$$%'" + "\n"); #region " RAS 상세 조회 " if (udcRASCondition1.Text != "ALL" && udcRASCondition1.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_1 {0} " + "\n", udcRASCondition1.SelectedValueToQueryString); } if (udcRASCondition2.Text != "ALL" && udcRASCondition2.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_2 {0} " + "\n", udcRASCondition2.SelectedValueToQueryString); } if (udcRASCondition3.Text != "ALL" && udcRASCondition3.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_3 {0} " + "\n", udcRASCondition3.SelectedValueToQueryString); } if (udcRASCondition4.Text != "ALL" && udcRASCondition4.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_5 {0} " + "\n", udcRASCondition4.SelectedValueToQueryString); } if (udcRASCondition5.Text != "ALL" && udcRASCondition5.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_6 {0} " + "\n", udcRASCondition5.SelectedValueToQueryString); } if (udcRASCondition6.Text != "ALL" && udcRASCondition6.Text != "") { strSqlString.AppendFormat(" AND RES.RES_ID {0} " + "\n", udcRASCondition6.SelectedValueToQueryString); } if (udcRASCondition7.Text != "ALL" && udcRASCondition7.Text != "") { strSqlString.AppendFormat(" AND RES.RES_ID IN ( SELECT UNIQUE RES_ID FROM CRASRESUSR WHERE USER_DESC {0} ) " + "\n", udcRASCondition7.SelectedValueToQueryString); } #endregion strSqlString.AppendFormat(" GROUP BY {0} " + "\n", QueryCond2); strSqlString.AppendFormat(" ORDER BY {0} " + "\n", QueryCond3); //strSqlString.Append(" AND MAT.MAT_ID LIKE '" + txtProduct.Text + "'" + "\n"); //#region 상세 조회에 따른 SQL문 생성 //if (udcBUMPCondition1.Text != "ALL" && udcBUMPCondition1.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0} " + "\n", udcBUMPCondition1.SelectedValueToQueryString); //if (udcBUMPCondition2.Text != "ALL" && udcBUMPCondition2.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcBUMPCondition2.SelectedValueToQueryString); //if (udcBUMPCondition3.Text != "ALL" && udcBUMPCondition3.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcBUMPCondition3.SelectedValueToQueryString); //if (udcBUMPCondition4.Text != "ALL" && udcBUMPCondition4.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcBUMPCondition4.SelectedValueToQueryString); //if (udcBUMPCondition5.Text != "ALL" && udcBUMPCondition5.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcBUMPCondition5.SelectedValueToQueryString); //if (udcBUMPCondition6.Text != "ALL" && udcBUMPCondition6.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcBUMPCondition6.SelectedValueToQueryString); //if (udcBUMPCondition7.Text != "ALL" && udcBUMPCondition7.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcBUMPCondition7.SelectedValueToQueryString); //if (udcBUMPCondition8.Text != "ALL" && udcBUMPCondition8.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcBUMPCondition8.SelectedValueToQueryString); //if (udcBUMPCondition9.Text != "ALL" && udcBUMPCondition9.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_CMF_14 {0} " + "\n", udcBUMPCondition9.SelectedValueToQueryString); //if (udcBUMPCondition10.Text != "ALL" && udcBUMPCondition10.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_CMF_2 {0} " + "\n", udcBUMPCondition10.SelectedValueToQueryString); //if (udcBUMPCondition11.Text != "ALL" && udcBUMPCondition11.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_CMF_3 {0} " + "\n", udcBUMPCondition11.SelectedValueToQueryString); //if (udcBUMPCondition12.Text != "ALL" && udcBUMPCondition12.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_CMF_4 {0} " + "\n", udcBUMPCondition12.SelectedValueToQueryString); //#endregion #endregion if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string strDecode = null; string strDecode2 = null; string[] selectDate = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; // TAT 선택시 DECODE 용 쿼리.. //if (cboType.Text.Equals("TAT")) if (cboType.SelectedIndex == 3) { selectDate = cdvFromToDate.getSelectDate(); for (int i = 0; i < cdvFromToDate.SubtractBetweenFromToDate + 1; i++) { strDecode2 += " , ROUND(DECODE(SUM(DECODE(WORK_DATE, '" + selectDate[i] + "', 1, 0)), 0, 0, SUM(DECODE(WORK_DATE, '" + selectDate[i] + "', TAT, 0)) / SUM(DECODE(WORK_DATE, '" + selectDate[i] + "', 1, 0))), 2) AS A" + i + "\n"; } } else // 그 외에 선택시 DECODE 용 쿼리.. { if (ckbKpcs.Checked == false) { strDecode += cdvFromToDate.getDecodeQuery("SUM(DECODE(WORK_DATE", "HLD.QTY_1, 0))", "A").Replace(", SUM(DECODE(", " , SUM(DECODE("); } else { strDecode += cdvFromToDate.getDecodeQuery("ROUND(SUM(DECODE(WORK_DATE", "HLD.QTY_1, 0))/1000,1)", "A").Replace(", ROUND(SUM(DECODE(", " , ROUND(SUM(DECODE("); } } strSqlString.AppendFormat("SELECT {0}" + "\n", QueryCond1); //if (cboType.Text.Equals("TAT")) if (cboType.SelectedIndex == 3) { strSqlString.Append(strDecode2); } else { strSqlString.Append(strDecode); } strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT HLD.FACTORY " + "\n"); strSqlString.Append(" , HLD.MAT_ID " + "\n"); strSqlString.Append(" , HLD.LOT_ID " + "\n"); // TYPE 선택에 따른 QTY_1 값 계산 //if(cboType.Text.Equals("업체재공")) if (cboType.SelectedIndex == 2) { strSqlString.Append(" , CASE WHEN (HLD.RELEASE_TRAN_TIME > GET_WORK_DATE(HLD.HOLD_TRAN_TIME, 'D')||'220000' OR TRIM(HLD.RELEASE_TRAN_TIME) IS NULL) " + "\n"); strSqlString.Append(" THEN HLD.QTY_1 " + "\n"); strSqlString.Append(" ELSE 0 " + "\n"); strSqlString.Append(" END AS QTY_1 " + "\n"); } //else if (cboType.Text.Equals("TAT")) else if (cboType.SelectedIndex == 3) { strSqlString.Append(" , TRUNC(DECODE(TRIM(HLD.RELEASE_TRAN_TIME), NULL, SYSDATE,TO_DATE(HLD.RELEASE_TRAN_TIME,'YYYYMMDDHH24MISS')) - TO_DATE(HLD.HOLD_TRAN_TIME,'YYYYMMDDHH24MISS'),2) AS TAT " + "\n"); } else { strSqlString.Append(" , HLD.QTY_1 " + "\n"); } // TYPE선택에 따른 WORK_DATE //if (cboType.Text.Equals("반입수량")) if (cboType.SelectedIndex == 1) { if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "DAY") { strSqlString.Append(" , GET_WORK_DATE(HLD.RELEASE_TRAN_TIME, 'D') AS WORK_DATE " + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" , GET_WORK_DATE(HLD.RELEASE_TRAN_TIME, 'W') AS WORK_DATE " + "\n"); } else { strSqlString.Append(" , GET_WORK_DATE(HLD.RELEASE_TRAN_TIME, 'M') AS WORK_DATE " + "\n"); } } else { if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "DAY") { strSqlString.Append(" , GET_WORK_DATE(HLD.HOLD_TRAN_TIME, 'D') AS WORK_DATE " + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" , GET_WORK_DATE(HLD.HOLD_TRAN_TIME, 'W') AS WORK_DATE " + "\n"); } else { strSqlString.Append(" , GET_WORK_DATE(HLD.HOLD_TRAN_TIME, 'M') AS WORK_DATE " + "\n"); } } strSqlString.Append(" , HIS.LOT_CMF_5 AS LOT_TYPE " + "\n"); strSqlString.Append(" , HIS.TRAN_CMF_2 AS SHP_FAC " + "\n"); strSqlString.Append(" FROM RWIPLOTHLD HLD " + "\n"); strSqlString.Append(" , RWIPLOTHIS HIS " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND HLD.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND HLD.FACTORY = HIS.FACTORY(+) " + "\n"); strSqlString.Append(" AND HLD.LOT_ID = HIS.LOT_ID(+) " + "\n"); strSqlString.Append(" AND HLD.HIST_SEQ = HIS.HIST_SEQ(+) " + "\n"); strSqlString.Append(" AND HLD.OPER IN ('A1050', 'A1440', 'A1450', 'A1460') " + "\n"); //if (cboType.Text.Equals("반입수량")) if (cboType.SelectedIndex == 1) { strSqlString.Append(" AND HLD.RELEASE_TRAN_TIME BETWEEN '" + cdvFromToDate.ExactFromDate + "' AND '" + cdvFromToDate.ExactToDate + "' " + "\n"); } else { strSqlString.Append(" AND HLD.HOLD_TRAN_TIME BETWEEN '" + cdvFromToDate.ExactFromDate + "' AND '" + cdvFromToDate.ExactToDate + "' " + "\n"); } strSqlString.Append(" AND HIS.HOLD_CODE IN ('S0', 'H55', 'H74') " + "\n"); strSqlString.Append(" AND HLD.HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND HIS.HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND HIS.TRAN_CODE = 'HOLD' " + "\n"); /* * if (cdvType.txtValue != "" && cdvType.txtValue != "ALL") * { * strSqlString.Append(" AND HIS.LOT_CMF_5 " + cdvType.SelectedValueToQueryString + "\n"); * } */ if (cdvLotType.Text != "ALL") { strSqlString.Append(" AND HIS.LOT_CMF_5 LIKE '" + cdvLotType.Text + "'" + "\n"); } strSqlString.Append(" ) HLD " + "\n"); strSqlString.Append(" , MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE 1 = 1 " + "\n"); strSqlString.Append(" AND HLD.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND HLD.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND MAT.DELETE_FLAG <> 'Y'" + "\n"); strSqlString.Append(" AND MAT.MAT_TYPE = 'FG'" + "\n"); //strSqlString.Append(" AND MAT.MAT_CMF_1 IN ('Sn-Bi','Sn 100')" + "\n"); // 도금 업체 선택에 따른 SQL문 생성 if (cdvPSite.Text != "ALL" && cdvPSite.Text != "") { strSqlString.AppendFormat(" AND SHP_FAC {0} " + "\n", cdvPSite.SelectedValueToQueryString); } //상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } //if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } //if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); //if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } //if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); //if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); strSqlString.AppendFormat(" GROUP BY {0}" + "\n", QueryCond2); strSqlString.AppendFormat(" ORDER BY {0}" + "\n", QueryCond2); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; string sFrom = string.Empty; string sTo = string.Empty; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; strSqlString.AppendFormat(" SELECT {0} " + "\n", QueryCond2); strSqlString.Append(" , A.LOT_ID" + "\n"); strSqlString.Append(" , SUM(A.SHIP_QTY_1)" + "\n"); strSqlString.Append(" , (SELECT COUNT(A.LOT_ID) FROM CWIPLOTWFR WHERE LOT_ID = A.LOT_ID) AS SHIP_QTY_2" + "\n"); strSqlString.Append(" , A.FROM_FACTORY " + "\n"); strSqlString.Append(" , A.TO_FACTORY " + "\n"); strSqlString.Append(" , A.FROM_OPER " + "\n"); strSqlString.Append(" , A.TRAN_USER_ID" + "\n"); strSqlString.Append(" , TO_CHAR(TO_DATE(A.LOT_CMF_14, 'YYYYMMDDHH24MISS'),'YYYY-MM-DD PM HH12:MI:SS') AS RECEIVE_TIME" + "\n"); strSqlString.Append(" , TO_CHAR(TO_DATE(A.TRAN_TIME, 'YYYYMMDDHH24MISS'),'YYYY-MM-DD PM HH12:MI:SS') AS TRANS_TIME" + "\n"); strSqlString.Append(" , ROUND(TO_DATE(A.TRAN_TIME, 'YYYYMMDDHH24MISS') - TO_DATE(A.LOT_CMF_14, 'YYYYMMDDHH24MISS'), 2) AS TAT" + "\n"); strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT *" + "\n"); strSqlString.Append(" FROM VWIPSHPLOT" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND FROM_FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); strSqlString.Append(" AND TO_FACTORY = 'CUSTOMER'" + "\n"); strSqlString.Append(" AND OWNER_CODE = 'PROD'" + "\n"); strSqlString.Append(" AND FROM_OPER IN ('AZ010','AZ009','TZ010','EZ010', 'F0000', 'BZ010')" + "\n"); //strSqlString.Append(" AND TO_OPER = ' ' " + "\n"); //기간 선택시 SQL 조건문 생성 if (cdvFromTo.DaySelector.SelectedValue.ToString() == "DAY") { sFrom = cdvFromTo.FromDate.Text; sTo = cdvFromTo.ToDate.Text.Replace("-", "") + "215959"; DateTime FromDate = DateTime.Parse(sFrom); FromDate = FromDate.AddDays(-1); sFrom = FromDate.ToString("yyyyMMdd") + "220000"; strSqlString.AppendFormat(" AND TRAN_TIME BETWEEN '{0}' AND '{1}' " + "\n", sFrom, sTo); } else if (cdvFromTo.DaySelector.SelectedValue.ToString() == "WEEK") { StringBuilder strSqlString1 = new StringBuilder(); sFrom = cdvFromTo.FromWeek.SelectedValue.ToString(); sTo = cdvFromTo.ToWeek.SelectedValue.ToString(); string sFromWeek = sFrom.Substring(4, 2).Replace('0', ' ').Trim(); string sToWeek = sTo.Substring(4, 2).Replace('0', ' ').Trim(); strSqlString1.Append("SELECT A.SYS_DATE, B.SYS_DATE " + "\n"); strSqlString1.Append(" FROM " + "\n"); strSqlString1.Append(" (" + "\n"); strSqlString1.Append(" SELECT SYS_DATE " + "\n"); strSqlString1.Append(" FROM MWIPCALDEF " + "\n"); strSqlString1.Append(" WHERE 1=1 " + "\n"); strSqlString1.Append(" AND CALENDAR_ID = 'HM' " + "\n"); strSqlString1.AppendFormat(" AND PLAN_YEAR = '{0}' " + "\n", sFrom.Substring(0, 4)); strSqlString1.AppendFormat(" AND PLAN_WEEK = '{0}' " + "\n", sFromWeek); strSqlString1.Append(" ORDER BY SYS_DATE ASC " + "\n"); strSqlString1.Append(" ) A," + "\n"); strSqlString1.Append(" (" + "\n"); strSqlString1.Append(" SELECT SYS_DATE " + "\n"); strSqlString1.Append(" FROM MWIPCALDEF " + "\n"); strSqlString1.Append(" WHERE 1=1 " + "\n"); strSqlString1.Append(" AND CALENDAR_ID = 'HM' " + "\n"); strSqlString1.AppendFormat(" AND PLAN_YEAR = '{0}' " + "\n", sTo.Substring(0, 4)); strSqlString1.AppendFormat(" AND PLAN_WEEK = '{0}' " + "\n", sToWeek); strSqlString1.Append(" ORDER BY SYS_DATE DESC" + "\n"); strSqlString1.Append(" ) B " + "\n"); strSqlString1.Append(" WHERE ROWNUM=1" + "\n"); DataTable dt1 = null; dt1 = CmnFunction.oComm.GetFuncDataTable("DYNAMIC", strSqlString1.ToString()); sFrom = dt1.Rows[0][0].ToString() + "220000"; sTo = dt1.Rows[0][1].ToString() + "215959"; strSqlString.AppendFormat(" AND TRAN_TIME BETWEEN '{0}' AND '{1}' " + "\n", sFrom, sTo); } else { sFrom = cdvFromTo.FromYearMonth.Value.ToString("yyyyMM") + "01"; sTo = cdvFromTo.ToYearMonth.Value.ToString("yyyyMM"); DataTable dt1 = null; string lastday = DateTime.Now.ToString("yyyyMM").ToString(); string ToDate = "(SELECT TO_CHAR(LAST_DAY(TO_DATE('" + lastday + "', 'YYYYMM')), 'YYYYMMDD') FROM DUAL)"; dt1 = CmnFunction.oComm.GetFuncDataTable("DYNAMIC", ToDate); lastday = dt1.Rows[0][0].ToString() + "215959"; DateTime From = DateTime.Parse(sFrom).AddDays(-1); sFrom = From.ToString("yyyyMMdd") + "220000"; strSqlString.AppendFormat(" AND TRAN_TIME BETWEEN '{0}' AND '{1}' " + "\n", sFrom, lastday); } strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , MWIPMATDEF B " + "\n"); strSqlString.Append("WHERE 1=1" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID" + "\n"); strSqlString.Append(" AND A.FROM_FACTORY = B.FACTORY " + "\n"); strSqlString.Append(" AND B.MAT_VER = 1" + "\n"); if (txtRunID.Text != "%" && txtRunID.Text != "") { strSqlString.AppendFormat(" AND A.LOT_CMF_4 LIKE '{0}' " + "\n", txtRunID.Text); } // 2013-01-28-임종우 : 고객사를 제외한 사용자들은 선택하여 조회 가능하도록 변경 if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "OPERATOR_GERNERAL" || GlobalVariable.gsUserGroup == "PRODUCTION_MANAGER") { this.udcWIPCondition1.Enabled = true; if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } } else { this.udcWIPCondition1.Enabled = false; strSqlString.Append(" AND B.MAT_GRP_1 = '" + GlobalVariable.gsCustomer + "'" + "\n"); } //상세 조회에 따른 SQL문 생성 if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } strSqlString.AppendFormat("GROUP BY {0} " + "\n", QueryCond3); strSqlString.Append(" , A.LOT_ID, A.FROM_FACTORY, A.TO_FACTORY, A.FROM_OPER, A.TRAN_USER_ID, A.TRAN_TIME, A.LOT_CMF_14" + "\n"); strSqlString.AppendFormat("ORDER BY {0} ", QueryCond3); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1; string QueryCond2; string FromDate = Convert.ToDateTime(cdvFromToDate.FromDate.Text).AddDays(-1).ToString("yyyyMMdd"); string[] strDate = cdvFromToDate.getSelectDate(); udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; GetFirstDay(); GetLastDay(); // 공정 선택 유무로 보여지는 화면이 다르기 때문에 그에 따른 쿼리문도 다름 if (cdvOper.Text.TrimEnd() == "ALL") { strSqlString.Append("SELECT A.*, B.LOSS_CODE_1, B.TOP_1, B.LOSS_CODE_2, B.TOP_2, B.LOSS_CODE_3, B.TOP_3, B.LOSS_CODE_4, B.TOP_4, B.LOSS_CODE_5, B.TOP_5, B.LOSS_CODE_ETC, B.TOP_ETC" + "\n"); strSqlString.Append(" FROM" + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append(" SELECT WORK_DATE" + "\n"); strSqlString.Append(" , SUM(IN_QTY) AS IN_QTY, SUM(OUT_QTY) AS OUT_QTY, ROUND(SUM(OUT_QTY)/SUM(IN_QTY) * 100,2) AS YIELD " + "\n"); strSqlString.Append(" , SUM(LOSS_QTY) AS LOSS , ROUND(SUM(LOSS_QTY)/SUM(IN_QTY) * 100,2) AS LOSS_YIELD" + "\n"); strSqlString.Append(" FROM" + "\n"); strSqlString.Append(" (" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" SELECT SUBSTR(B.TRAN_TIME,0,6) AS WORK_DATE, B.LOT_ID,B.SHIP_QTY_1 + NVL(SUM(LOSS_QTY),0) AS IN_QTY, B.SHIP_QTY_1 AS OUT_QTY" + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" SELECT SYS_YEAR||PLAN_WEEK AS WORK_DATE, B.LOT_ID,B.SHIP_QTY_1 + NVL(SUM(LOSS_QTY),0) AS IN_QTY, B.SHIP_QTY_1 AS OUT_QTY" + "\n"); } else { strSqlString.Append(" SELECT SUBSTR(B.TRAN_TIME,0,8) AS WORK_DATE, B.LOT_ID,B.SHIP_QTY_1 + NVL(SUM(LOSS_QTY),0) AS IN_QTY, B.SHIP_QTY_1 AS OUT_QTY" + "\n"); } strSqlString.Append(" , NVL(SUM(LOSS_QTY),0) AS LOSS_QTY" + "\n"); strSqlString.Append(" FROM" + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append(" SELECT * FROM RWIPLOTLSM" + "\n"); strSqlString.Append(" WHERE FACTORY = 'HMKA1'" + "\n"); strSqlString.Append(" ) A ," + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append(" SELECT *" + "\n"); strSqlString.Append(" FROM VWIPSHPLOT, MWIPCALDEF" + "\n"); strSqlString.Append(" WHERE FROM_FACTORY = 'HMKA1'" + "\n"); strSqlString.Append(" AND CALENDAR_ID = 'HM' " + "\n"); strSqlString.Append(" AND SUBSTR(TRAN_TIME,0,8) = SYS_DATE " + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" AND TRAN_TIME BETWEEN '" + cdvFromToDate.FromYearMonth.Value.ToString("yyyyMM") + "01000000" + "' AND '" + cdvFromToDate.ToYearMonth.Value.ToString("yyyyMM") + "31235959" + "'" + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" AND TRAN_TIME BETWEEN '" + dayArry[0] + "000000" + "' AND '" + dayArry[1] + "235959" + "'" + "\n"); } else { strSqlString.Append(" AND TRAN_TIME BETWEEN '" + cdvFromToDate.FromDate.Text.Replace("-", "") + "000000" + "' AND '" + cdvFromToDate.ToDate.Text.Replace("-", "") + "235959" + "'" + "\n"); } strSqlString.Append(" AND MAT_ID LIKE '" + cdvCustomer.Text + "%' " + "\n"); strSqlString.Append(" AND FROM_OPER = 'AZ010'" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" WHERE A.LOT_ID(+) = B.LOT_ID" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" GROUP BY SUBSTR(B.TRAN_TIME,0,6) , B.LOT_ID ,B.SHIP_QTY_1" + "\n"); strSqlString.Append(" ORDER BY SUBSTR(B.TRAN_TIME,0,6)" + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" GROUP BY B.SYS_YEAR||B.PLAN_WEEK , B.LOT_ID ,B.SHIP_QTY_1" + "\n"); strSqlString.Append(" ORDER BY B.SYS_YEAR||B.PLAN_WEEK" + "\n"); } else { strSqlString.Append(" GROUP BY SUBSTR(B.TRAN_TIME,0,8) , B.LOT_ID ,B.SHIP_QTY_1" + "\n"); strSqlString.Append(" ORDER BY SUBSTR(B.TRAN_TIME,0,8)" + "\n"); } strSqlString.Append(" )" + "\n"); strSqlString.Append(" GROUP BY WORK_DATE" + "\n"); strSqlString.Append(" ORDER BY WORK_DATE" + "\n"); strSqlString.Append(" ) A," + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append(" SELECT WORK_DATE" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,1, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_1" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,1,QTY,0)) AS TOP_1" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,2, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_2" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,2,QTY,0)) AS TOP_2" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,3, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_3" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,3,QTY,0)) AS TOP_3" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,4, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_4" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,4,QTY,0)) AS TOP_4" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,5, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_5" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,5,QTY,0)) AS TOP_5" + "\n"); strSqlString.Append(" , 'ETC' AS LOSS_CODE_ETC" + "\n"); strSqlString.Append(" , SUM(DECODE(SIGN(NUM-5),1,QTY,0)) AS TOP_ETC" + "\n"); strSqlString.Append(" FROM" + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append(" SELECT ROW_NUMBER() OVER(PARTITION BY WORK_DATE ORDER BY QTY DESC) AS NUM, A.*, B.LOSS_DESC" + "\n"); strSqlString.Append(" FROM" + "\n"); strSqlString.Append(" (" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" SELECT SUBSTR(B.TRAN_TIME,0,6) AS WORK_DATE, LOSS_CODE, SUM(NVL(LOSS_QTY,0)) AS QTY" + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" SELECT SYS_YEAR||PLAN_WEEK AS WORK_DATE, LOSS_CODE, SUM(NVL(LOSS_QTY,0)) AS QTY" + "\n"); } else { strSqlString.Append(" SELECT SUBSTR(B.TRAN_TIME,0,8) AS WORK_DATE, LOSS_CODE, SUM(NVL(LOSS_QTY,0)) AS QTY" + "\n"); } strSqlString.Append(" FROM RWIPLOTLSM A ," + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append(" SELECT *" + "\n"); strSqlString.Append(" FROM VWIPSHPLOT, MWIPCALDEF" + "\n"); strSqlString.Append(" WHERE FROM_FACTORY = 'HMKA1'" + "\n"); strSqlString.Append(" AND CALENDAR_ID = 'HM'" + "\n"); strSqlString.Append(" AND SUBSTR(TRAN_TIME,0,8) = SYS_DATE" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" AND TRAN_TIME BETWEEN '" + cdvFromToDate.FromYearMonth.Value.ToString("yyyyMM") + "01000000" + "' AND '" + cdvFromToDate.ToYearMonth.Value.ToString("yyyyMM") + "31235959" + "'" + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" AND TRAN_TIME BETWEEN '" + dayArry[0] + "000000" + "' AND '" + dayArry[1] + "235959" + "'" + "\n"); } else { strSqlString.Append(" AND TRAN_TIME BETWEEN '" + cdvFromToDate.FromDate.Text.Replace("-", "") + "000000" + "' AND '" + cdvFromToDate.ToDate.Text.Replace("-", "") + "235959" + "'" + "\n"); } strSqlString.Append(" AND MAT_ID LIKE '" + cdvCustomer.Text + "%' " + "\n"); strSqlString.Append(" AND FROM_OPER = 'AZ010'" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" WHERE A.LOT_ID(+) = B.LOT_ID" + "\n"); strSqlString.Append(" AND A.FACTORY = 'HMKA1'" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" GROUP BY SUBSTR(B.TRAN_TIME,0,6), LOSS_CODE" + "\n"); strSqlString.Append(" ORDER BY SUBSTR(B.TRAN_TIME,0,6), QTY DESC" + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" GROUP BY B.SYS_YEAR||B.PLAN_WEEK, LOSS_CODE" + "\n"); strSqlString.Append(" ORDER BY B.SYS_YEAR||B.PLAN_WEEK, QTY DESC" + "\n"); } else { strSqlString.Append(" GROUP BY SUBSTR(B.TRAN_TIME,0,8), LOSS_CODE" + "\n"); strSqlString.Append(" ORDER BY SUBSTR(B.TRAN_TIME,0,8), QTY DESC" + "\n"); } strSqlString.Append(" ) A," + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append("SELECT KEY_1 AS LOSS_CODE" + "\n"); strSqlString.Append(", DATA_1 AS LOSS_DESC" + "\n"); strSqlString.Append(", DATA_5 AS LOSS_OPER_DESC" + "\n"); strSqlString.Append("FROM MGCMTBLDAT" + "\n"); strSqlString.Append("WHERE FACTORY = 'HMKA1'" + "\n"); strSqlString.Append("AND TABLE_NAME = 'LOSS_CODE'" + "\n"); //strSqlString.Append("AND DATA_1 <> 'ETC'" + "\n"); //strSqlString.Append("AND DATA_2 <> 'Y'" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" WHERE A.LOSS_CODE = B.LOSS_CODE" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" GROUP BY WORK_DATE" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append("WHERE A.WORK_DATE = B.WORK_DATE" + "\n"); strSqlString.Append("ORDER BY A.WORK_DATE" + "\n"); } // 공정 선택시( IN,OUT 수량을 제외한 LOSS 정보만 표기 else { strSqlString.Append(" SELECT WORK_DATE, OPER" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,1, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_1" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,1,QTY,0)) AS TOP_1" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,2, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_2" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,2,QTY,0)) AS TOP_2" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,3, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_3" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,3,QTY,0)) AS TOP_3" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,4, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_4" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,4,QTY,0)) AS TOP_4" + "\n"); strSqlString.Append(" , MAX(DECODE(NUM,5, LOSS_CODE||' '||LOSS_DESC,0)) AS LOSS_CODE_5" + "\n"); strSqlString.Append(" , SUM(DECODE(NUM,5,QTY,0)) AS TOP_5" + "\n"); strSqlString.Append(" , 'ETC' AS LOSS_CODE_ETC" + "\n"); strSqlString.Append(" , SUM(DECODE(SIGN(NUM-5),1,QTY,0)) AS TOP_ETC" + "\n"); strSqlString.Append(" FROM" + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append(" SELECT ROW_NUMBER() OVER(PARTITION BY WORK_DATE, OPER ORDER BY QTY DESC) AS NUM, A.*, B.LOSS_DESC" + "\n"); strSqlString.Append(" FROM" + "\n"); strSqlString.Append(" (" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" SELECT SUBSTR(B.TRAN_TIME,0,6) AS WORK_DATE, A.OPER, LOSS_CODE, SUM(NVL(LOSS_QTY,0)) AS QTY" + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" SELECT SYS_YEAR||PLAN_WEEK AS WORK_DATE, A.OPER, LOSS_CODE, SUM(NVL(LOSS_QTY,0)) AS QTY" + "\n"); } else { strSqlString.Append(" SELECT SUBSTR(B.TRAN_TIME,0,8) AS WORK_DATE, A.OPER, LOSS_CODE, SUM(NVL(LOSS_QTY,0)) AS QTY" + "\n"); } strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT * FROM RWIPLOTLSM " + "\n"); strSqlString.Append(" WHERE OPER " + cdvOper.SelectedValueToQueryString + ") A," + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append(" SELECT *" + "\n"); strSqlString.Append(" FROM VWIPSHPLOT, MWIPCALDEF" + "\n"); strSqlString.Append(" WHERE FROM_FACTORY = 'HMKA1'" + "\n"); strSqlString.Append(" AND CALENDAR_ID = 'HM'" + "\n"); strSqlString.Append(" AND SUBSTR(TRAN_TIME,0,8) = SYS_DATE" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" AND TRAN_TIME BETWEEN '" + cdvFromToDate.FromYearMonth.Value.ToString("yyyyMM") + "01000000" + "' AND '" + cdvFromToDate.ToYearMonth.Value.ToString("yyyyMM") + "31235959" + "'" + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" AND TRAN_TIME BETWEEN '" + dayArry[0] + "000000" + "' AND '" + dayArry[1] + "235959" + "'" + "\n"); } else { strSqlString.Append(" AND TRAN_TIME BETWEEN '" + cdvFromToDate.FromDate.Text.Replace("-", "") + "000000" + "' AND '" + cdvFromToDate.ToDate.Text.Replace("-", "") + "235959" + "'" + "\n"); } strSqlString.Append(" AND MAT_ID LIKE '" + cdvCustomer.Text + "%' " + "\n"); strSqlString.Append(" AND FROM_OPER = 'AZ010'" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" WHERE A.LOT_ID(+) = B.LOT_ID" + "\n"); strSqlString.Append(" AND A.FACTORY = 'HMKA1'" + "\n"); if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "MONTH") { strSqlString.Append(" GROUP BY SUBSTR(B.TRAN_TIME,0,6), A.OPER, LOSS_CODE" + "\n"); strSqlString.Append(" ORDER BY SUBSTR(B.TRAN_TIME,0,6), QTY DESC" + "\n"); } else if (cdvFromToDate.DaySelector.SelectedValue.ToString() == "WEEK") { strSqlString.Append(" GROUP BY B.SYS_YEAR||B.PLAN_WEEK , A.OPER, LOSS_CODE" + "\n"); strSqlString.Append(" ORDER BY B.SYS_YEAR||B.PLAN_WEEK, QTY DESC" + "\n"); } else { strSqlString.Append(" GROUP BY SUBSTR(B.TRAN_TIME,0,8), A.OPER, LOSS_CODE" + "\n"); strSqlString.Append(" ORDER BY SUBSTR(B.TRAN_TIME,0,8), QTY DESC" + "\n"); } strSqlString.Append(" ) A," + "\n"); strSqlString.Append(" (" + "\n"); strSqlString.Append("SELECT KEY_1 AS LOSS_CODE" + "\n"); strSqlString.Append(", DATA_1 AS LOSS_DESC" + "\n"); strSqlString.Append(", DATA_5 AS LOSS_OPER_DESC" + "\n"); strSqlString.Append("FROM MGCMTBLDAT" + "\n"); strSqlString.Append("WHERE FACTORY = 'HMKA1'" + "\n"); strSqlString.Append("AND TABLE_NAME = 'LOSS_CODE'" + "\n"); //strSqlString.Append("AND DATA_1 <> 'ETC'" + "\n"); //strSqlString.Append("AND DATA_2 <> 'Y'" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" WHERE A.LOSS_CODE = B.LOSS_CODE" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" GROUP BY WORK_DATE, OPER" + "\n"); strSqlString.Append("ORDER BY WORK_DATE" + "\n"); } if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
private string MakeSqlString1() { StringBuilder strSqlString = new StringBuilder(); string strDate = string.Empty; int Between = cdvFromTo.SubtractBetweenFromToDate + 1; // From To 선택된 기간 string[] selectDate1 = new string[cdvFromTo.SubtractBetweenFromToDate + 1]; selectDate1 = cdvFromTo.getSelectDate(); // From To 선택된 기간의 모든 MONTH, WEEK, DATE를 가져옴 string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; string strFromDate = cdvFromTo.ExactFromDate; // From 의 Tran_Time string strToDate = cdvFromTo.ExactToDate; // To 의 Tran_Time //장비대수 구하기// StringBuilder strRes_Cnt = new StringBuilder(); { strRes_Cnt.Append("SELECT COUNT(RES_ID) FROM MRASRESDEF WHERE DELETE_FLAG = ' ' "); strRes_Cnt.Append(" AND RES_GRP_3 IN ( SELECT KEY_1 FROM MGCMTBLDAT WHERE TABLE_NAME ='H_EQP_GRP' AND DATA_2 = 'Y' AND FACTORY " + cdvFactory.SelectedValueToQueryString + ")" + "\n"); if (udcRASCondition1.Text != "ALL" && udcRASCondition1.Text != "") { strRes_Cnt.AppendFormat(" AND RES_GRP_1 {0} " + "\n", udcRASCondition1.SelectedValueToQueryString); } if (udcRASCondition2.Text != "ALL" && udcRASCondition2.Text != "") { strRes_Cnt.AppendFormat(" AND RES_GRP_2 {0} " + "\n", udcRASCondition2.SelectedValueToQueryString); } if (udcRASCondition3.Text != "ALL" && udcRASCondition3.Text != "") { strRes_Cnt.AppendFormat(" AND RES_GRP_3 {0} " + "\n", udcRASCondition3.SelectedValueToQueryString); } if (udcRASCondition4.Text != "ALL" && udcRASCondition4.Text != "") { strRes_Cnt.AppendFormat(" AND RES_GRP_5 {0} " + "\n", udcRASCondition4.SelectedValueToQueryString); } if (udcRASCondition5.Text != "ALL" && udcRASCondition5.Text != "") { strRes_Cnt.AppendFormat(" AND RES_GRP_6 {0} " + "\n", udcRASCondition5.SelectedValueToQueryString); } if (udcRASCondition6.Text != "ALL" && udcRASCondition6.Text != "") { strRes_Cnt.AppendFormat(" AND RES_ID {0} " + "\n", udcRASCondition6.SelectedValueToQueryString); } if (udcRASCondition7.Text != "ALL" && udcRASCondition7.Text != "") { strRes_Cnt.AppendFormat(" AND RES_ID IN ( SELECT UNIQUE RES_ID FROM CRASRESUSR WHERE USER_DESC {0} ) " + "\n", udcRASCondition7.SelectedValueToQueryString); } } switch (cdvFromTo.DaySelector.SelectedValue.ToString()) { case "DAY": strDate = "WORK_DATE"; break; case "WEEK": strDate = "WORK_WEEK"; break; case "MONTH": strDate = "WORK_MONTH"; break; default: strDate = "WORK_DATE"; break; } strSqlString.Append(" SELECT 'MTBF', 'MTBF', 'MTBF', 'MTBF', 'MTBF', 'MTBF', 'MTBF' " + "\n"); if (strDate == "WORK_MONTH") { for (int i = 0; i < Between; i++) { strSqlString.Append(" ,SUM(CASE WHEN COUNT" + i + " = 0 \n"); strSqlString.Append(" THEN 0 " + "\n"); strSqlString.Append(" ELSE ROUND(DECODE(WORK_MONTH, '" + selectDate1[i] + "', TO_CHAR(LAST_DAY(TO_DATE('200811' , 'YYYYMM')), 'DD')*1440*(" + strRes_Cnt.ToString() + ") - TIME0/60, 0)/COUNT" + i + ", 3) END) MTBF" + i + "\n"); } } else if (strDate == "WORK_WEEK") { for (int i = 0; i < Between; i++) { strSqlString.Append(" ,SUM(CASE WHEN COUNT" + i + "= 0 \n"); strSqlString.Append(" THEN 0 " + "\n"); strSqlString.Append(" ELSE ROUND(DECODE(WORK_WEEK, '" + selectDate1[i] + "', (7*1440*(" + strRes_Cnt.ToString() + ") - TIME0)/60, 0)/COUNT" + i + ", 3) END) MTBF" + i + "\n"); } } else if (strDate == "WORK_DATE") { for (int i = 0; i < Between; i++) { strSqlString.Append(" ,SUM(CASE WHEN COUNT" + i + "= 0 \n"); strSqlString.Append(" THEN 0 " + "\n"); strSqlString.Append(" ELSE ROUND(DECODE(WORK_DATE, '" + selectDate1[i] + "', (1440*(" + strRes_Cnt.ToString() + ") - TIME0)/60, 0)/COUNT" + i + ", 3) END) MTBF" + i + "\n"); } } strSqlString.Append(" FROM (SELECT RES_GRP_1, RES_GRP_2, RES_GRP_3, RES_GRP_5, RES_GRP_6 " + "\n"); strSqlString.Append(" , FACTORY, DOWN_NEW_STS_1, " + strDate + "\n"); if (strDate == "WORK_MONTH") { for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_MONTH, '" + selectDate1[i] + "', " + "\n"); strSqlString.Append(" CASE WHEN UP_EVENT_ID =' ' " + "\n"); strSqlString.Append(" THEN ROUND((F_GET_DIFF_TIME('" + strToDate + "', DOWN_TRAN_TIME, 'M')), 0) " + "\n"); //strSqlString.Append(" THEN ROUND((F_GET_DIFF_TIME(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'), DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" ELSE ROUND((F_GET_DIFF_TIME(UP_TRAN_TIME, DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" END " + "\n"); strSqlString.Append(" , 0)) AS TIME" + i + "\n"); } for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_MONTH, '" + selectDate1[i] + "', 1 , 0)) AS COUNT" + i + "\n"); } } else if (strDate == "WORK_WEEK") { for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_WEEK, '" + selectDate1[i] + "', " + "\n"); strSqlString.Append(" CASE WHEN UP_EVENT_ID = ' ' " + "\n"); strSqlString.Append(" THEN ROUND((F_GET_DIFF_TIME('" + strToDate + "', DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" ELSE ROUND((F_GET_DIFF_TIME(UP_TRAN_TIME, DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" END " + "\n"); strSqlString.Append(" , 0)) AS TIME" + i + "\n"); } for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_WEEK, '" + selectDate1[i] + "', 1 , 0)) AS COUNT" + i + "\n"); } } else if (strDate == "WORK_DATE") { for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_DATE, '" + selectDate1[i] + "', " + "\n"); strSqlString.Append(" CASE WHEN UP_EVENT_ID = ' ' " + "\n"); strSqlString.Append(" THEN ROUND((F_GET_DIFF_TIME('" + strToDate + "', DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" ELSE ROUND((F_GET_DIFF_TIME(UP_TRAN_TIME, DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" END " + "\n"); strSqlString.Append(" , 0)) AS TIME" + i + "\n"); } for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_DATE, '" + selectDate1[i] + "', 1 , 0)) AS COUNT" + i + "\n"); } } strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT B.RES_GRP_1, B.RES_GRP_2, B.RES_GRP_3, B.RES_GRP_5, B.RES_GRP_6 " + "\n"); strSqlString.Append(" , A.FACTORY, UP_EVENT_ID, UP_TRAN_TIME, DOWN_NEW_STS_1 " + "\n"); strSqlString.Append(" , GET_WORK_DATE(A.DOWN_TRAN_TIME, 'M')AS WORK_MONTH, GET_WORK_DATE(A.DOWN_TRAN_TIME, 'W')AS WORK_WEEK, A.DOWN_TRAN_TIME " + "\n"); strSqlString.Append(" , GET_WORK_DATE(A.DOWN_TRAN_TIME, 'D')AS WORK_DATE " + "\n"); strSqlString.Append(" FROM CRASRESDWH A " + "\n"); strSqlString.Append(" , MRASRESDEF B " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND A.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY " + "\n"); strSqlString.Append(" AND A.RES_ID = B.RES_ID " + "\n"); strSqlString.Append(" AND A.DOWN_NEW_STS_1 LIKE '" + cdvLoss.txtValue + "%' " + "\n"); strSqlString.Append(" AND B.RES_GRP_3 IN ( SELECT KEY_1 FROM MGCMTBLDAT WHERE TABLE_NAME ='H_EQP_GRP' AND DATA_2 = 'Y' AND FACTORY " + cdvFactory.SelectedValueToQueryString + ")" + "\n"); // 2015-11-26-임종우 : 지정설비 검색 조건 추가 //if (cdvCare.Text == "Designated Equipment") if (cdvCare.SelectedIndex == 1) { strSqlString.AppendFormat(" AND B.RES_ID IN (SELECT KEY_1 FROM MGCMTBLDAT WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND TABLE_NAME = 'H_RES_CARE_LIST') " + "\n"); } //else if (cdvCare.Text == "Unspecified equipment") else if (cdvCare.SelectedIndex == 2) { strSqlString.AppendFormat(" AND B.RES_ID NOT IN (SELECT KEY_1 FROM MGCMTBLDAT WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND TABLE_NAME = 'H_RES_CARE_LIST') " + "\n"); } if (udcRASCondition1.Text != "ALL" && udcRASCondition1.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_1 {0} " + "\n", udcRASCondition1.SelectedValueToQueryString); } if (udcRASCondition2.Text != "ALL" && udcRASCondition2.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_2 {0} " + "\n", udcRASCondition2.SelectedValueToQueryString); } if (udcRASCondition3.Text != "ALL" && udcRASCondition3.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_3 {0} " + "\n", udcRASCondition3.SelectedValueToQueryString); } if (udcRASCondition4.Text != "ALL" && udcRASCondition4.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_5 {0} " + "\n", udcRASCondition4.SelectedValueToQueryString); } if (udcRASCondition5.Text != "ALL" && udcRASCondition5.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_6 {0} " + "\n", udcRASCondition5.SelectedValueToQueryString); } if (udcRASCondition6.Text != "ALL" && udcRASCondition6.Text != "") { strSqlString.AppendFormat(" AND B.RES_ID {0} " + "\n", udcRASCondition6.SelectedValueToQueryString); } if (udcRASCondition7.Text != "ALL" && udcRASCondition7.Text != "") { strSqlString.AppendFormat(" AND B.RES_ID IN ( SELECT UNIQUE RES_ID FROM CRASRESUSR WHERE USER_DESC {0} ) " + "\n", udcRASCondition7.SelectedValueToQueryString); } strSqlString.Append(" ) " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND DOWN_TRAN_TIME BETWEEN '" + strFromDate + "' AND '" + strToDate + "' " + "\n"); strSqlString.Append(" GROUP BY RES_GRP_1, RES_GRP_2, RES_GRP_3, RES_GRP_5, RES_GRP_6 " + "\n"); strSqlString.Append(" , FACTORY, DOWN_NEW_STS_1, " + strDate + "\n"); strSqlString.Append(" ORDER BY RES_GRP_1, RES_GRP_2" + "\n"); strSqlString.Append(" ) A " + "\n"); return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string strDate = string.Empty; int Between = cdvFromTo.SubtractBetweenFromToDate + 1; string[] selectDate1 = new string[cdvFromTo.SubtractBetweenFromToDate + 1]; selectDate1 = cdvFromTo.getSelectDate(); string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; string strFromDate = cdvFromTo.ExactFromDate; string strToDate = cdvFromTo.ExactToDate; switch (cdvFromTo.DaySelector.SelectedValue.ToString()) { case "DAY": strDate = "WORK_DATE"; break; case "WEEK": strDate = "WORK_WEEK"; break; case "MONTH": strDate = "WORK_MONTH"; break; default: strDate = "WORK_DATE"; break; } strSqlString.AppendFormat(" SELECT {0} " + "\n", QueryCond1); strSqlString.Append(" , ' ' " + "\n"); if (strDate == "WORK_MONTH") { for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_MONTH, '" + selectDate1[i] + "', " + "\n"); strSqlString.Append(" CASE WHEN UP_EVENT_ID = ' ' " + "\n"); strSqlString.Append(" THEN ROUND((F_GET_DIFF_TIME('" + strToDate + "', DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" ELSE ROUND((F_GET_DIFF_TIME(UP_TRAN_TIME, DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" END " + "\n"); strSqlString.Append(" , 0)) AS TIME" + i + "\n"); } for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_MONTH, '" + selectDate1[i] + "', 1 , 0)) AS COUNT" + i + "\n"); } } else if (strDate == "WORK_WEEK") { for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_WEEK, '" + selectDate1[i] + "', " + "\n"); strSqlString.Append(" CASE WHEN UP_EVENT_ID = ' ' " + "\n"); strSqlString.Append(" THEN ROUND((F_GET_DIFF_TIME('" + strToDate + "', DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" ELSE ROUND(F_GET_DIFF_TIME(UP_TRAN_TIME, DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" END " + "\n"); strSqlString.Append(" , 0)) AS TIME" + i + "\n"); } for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_WEEK, '" + selectDate1[i] + "', 1 , 0)) AS COUNT" + i + "\n"); } } else if (strDate == "WORK_DATE") { for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_DATE, '" + selectDate1[i] + "', " + "\n"); strSqlString.Append(" CASE WHEN UP_EVENT_ID = ' ' " + "\n"); strSqlString.Append(" THEN ROUND((F_GET_DIFF_TIME('" + strToDate + "', DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" ELSE ROUND((F_GET_DIFF_TIME(UP_TRAN_TIME, DOWN_TRAN_TIME, 'M')), 0) " + "\n"); strSqlString.Append(" END " + "\n"); strSqlString.Append(" , 0)) AS TIME" + i + "\n"); } for (int i = 0; i < Between; i++) { strSqlString.Append(" , SUM(DECODE(WORK_DATE, '" + selectDate1[i] + "', 1 , 0)) AS COUNT" + i + "\n"); } } strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT B.RES_GRP_1, B.RES_GRP_2, B.RES_GRP_3, B.RES_GRP_4, B.RES_GRP_5, B.RES_GRP_6, B.RES_GRP_7, B.RES_GRP_8 " + "\n"); strSqlString.Append(" , A.FACTORY, A.DOWN_NEW_STS_1, UP_EVENT_ID, UP_TRAN_TIME, A.RES_ID " + "\n"); strSqlString.Append(" , GET_WORK_DATE(A.DOWN_TRAN_TIME, 'M')AS WORK_MONTH, GET_WORK_DATE(A.DOWN_TRAN_TIME, 'W')AS WORK_WEEK, A.DOWN_TRAN_TIME " + "\n"); strSqlString.Append(" , GET_WORK_DATE(A.DOWN_TRAN_TIME, 'D')AS WORK_DATE " + "\n"); strSqlString.Append(" FROM CRASRESDWH A " + "\n"); strSqlString.Append(" , MRASRESDEF B " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND A.FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY " + "\n"); strSqlString.Append(" AND A.RES_ID = B.RES_ID " + "\n"); strSqlString.Append(" AND A.DOWN_NEW_STS_1 LIKE '" + cdvLoss.txtValue + "%'" + "\n"); strSqlString.Append(" AND B.RES_GRP_3 IN ( SELECT KEY_1 FROM MGCMTBLDAT WHERE TABLE_NAME ='H_EQP_GRP' AND DATA_2 = 'Y' AND FACTORY " + cdvFactory.SelectedValueToQueryString + ")" + "\n"); // 2015-11-26-임종우 : 지정설비 검색 조건 추가 //if (cdvCare.Text == "Designated Equipment") if (cdvCare.SelectedIndex == 1) { strSqlString.AppendFormat(" AND B.RES_ID IN (SELECT KEY_1 FROM MGCMTBLDAT WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND TABLE_NAME = 'H_RES_CARE_LIST') " + "\n"); } //else if (cdvCare.Text == "Unspecified equipment") else if (cdvCare.SelectedIndex == 2) { strSqlString.AppendFormat(" AND B.RES_ID NOT IN (SELECT KEY_1 FROM MGCMTBLDAT WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND TABLE_NAME = 'H_RES_CARE_LIST') " + "\n"); } if (udcRASCondition1.Text != "ALL" && udcRASCondition1.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_1 {0} " + "\n", udcRASCondition1.SelectedValueToQueryString); } if (udcRASCondition2.Text != "ALL" && udcRASCondition2.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_2 {0} " + "\n", udcRASCondition2.SelectedValueToQueryString); } if (udcRASCondition3.Text != "ALL" && udcRASCondition3.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_3 {0} " + "\n", udcRASCondition3.SelectedValueToQueryString); } if (udcRASCondition4.Text != "ALL" && udcRASCondition4.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_5 {0} " + "\n", udcRASCondition4.SelectedValueToQueryString); } if (udcRASCondition5.Text != "ALL" && udcRASCondition5.Text != "") { strSqlString.AppendFormat(" AND B.RES_GRP_6 {0} " + "\n", udcRASCondition5.SelectedValueToQueryString); } if (udcRASCondition6.Text != "ALL" && udcRASCondition6.Text != "") { strSqlString.AppendFormat(" AND B.RES_ID {0} " + "\n", udcRASCondition6.SelectedValueToQueryString); } if (udcRASCondition7.Text != "ALL" && udcRASCondition7.Text != "") { strSqlString.AppendFormat(" AND B.RES_ID IN ( SELECT UNIQUE RES_ID FROM CRASRESUSR WHERE USER_DESC {0} ) " + "\n", udcRASCondition7.SelectedValueToQueryString); } strSqlString.Append(" ) A " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND DOWN_TRAN_TIME BETWEEN '" + strFromDate + "' AND '" + strToDate + "' " + "\n"); strSqlString.AppendFormat(" GROUP BY {0}, FACTORY" + "\n", QueryCond2); strSqlString.AppendFormat(" ORDER BY {0}, FACTORY" + "\n", QueryCond3); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1; string QueryCond2; string QueryCond3; string sKpcsValue; // Kpcs 구분에 의한 나누기 분모 값 udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; // 2019-11-20-김미경 : QueryCond3 추가 QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; if (ckbKpcs.Checked == true) { sKpcsValue = "1000"; } else { sKpcsValue = "1"; } strSqlString.Append("SELECT " + QueryCond3 + "\n"); strSqlString.Append(" , REMAIN_W0, REMAIN_W1, REMAIN_W2, REMAIN_W3, REMAIN_W4, REMAIN_W5 \n"); strSqlString.Append(" , MAT_L, MAT_INV_QTY, SAFTY_WARNING, MAT_NEED, MAT_FORECAST_DAY, DELIVERY_WEEK, MAT_ORDER_QTY, ORDER_WARNING \n"); strSqlString.Append(" , SHORTAGE_W0, SHORTAGE_W1, SHORTAGE_W2, SHORTAGE_W3, SHORTAGE_W4, SHORTAGE_W5 \n"); strSqlString.Append(" FROM (SELECT " + QueryCond3 + "\n"); strSqlString.Append(" , REMAIN_W0, REMAIN_W1, REMAIN_W2, REMAIN_W3, REMAIN_W4, REMAIN_W5 \n"); strSqlString.Append(" , MAT_L, MAT_INV_QTY \n"); //strSqlString.Append(" , CASE WHEN MAT_TYPE = 'PB' AND DELIVERY_DATE * MAT_NEED * 0.5 > MAT_TTL THEN 'Y' \n"); //strSqlString.Append(" WHEN MAT_TYPE <> 'PB' AND DELIVERY_DATE * MAT_NEED * 0.5 > MAT_INV_QTY THEN 'Y' \n"); strSqlString.Append(" , CASE WHEN MAT_TYPE = 'PB' AND DECODE(DELIVERY_DATE, 0, 4, DELIVERY_DATE) * MAT_NEED * 0.5 > MAT_TTL THEN 'Y' \n"); strSqlString.Append(" WHEN MAT_TYPE = 'RC' AND DECODE(DELIVERY_DATE, 0, 4, DELIVERY_DATE) * MAT_NEED * 0.5 > MAT_TTL THEN 'Y' \n"); strSqlString.Append(" WHEN DECODE(DELIVERY_DATE, 0, 4, DELIVERY_DATE) * MAT_NEED * 0.5 > MAT_INV_QTY THEN 'Y' \n"); strSqlString.Append(" ELSE 'N' \n"); strSqlString.Append(" END SAFTY_WARNING \n"); strSqlString.Append(" , MAT_NEED, MAT_FORECAST_DAY \n"); strSqlString.Append(" , CEIL(DELIVERY_DATE / 7) || 'W' AS DELIVERY_WEEK \n"); strSqlString.Append(" , MAT_ORDER_QTY \n"); strSqlString.Append(" , CASE WHEN CEIL(DELIVERY_DATE / 7) = 0 AND SHORTAGE_W4 < 0 AND ABS(SHORTAGE_W4) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 1 AND SHORTAGE_W1 < 0 AND ABS(SHORTAGE_W1) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 2 AND SHORTAGE_W2 < 0 AND ABS(SHORTAGE_W2) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 3 AND SHORTAGE_W3 < 0 AND ABS(SHORTAGE_W3) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 4 AND SHORTAGE_W4 < 0 AND ABS(SHORTAGE_W4) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 5 AND SHORTAGE_W5 < 0 AND ABS(SHORTAGE_W5) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 6 AND SHORTAGE_W6 < 0 AND ABS(SHORTAGE_W6) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 7 AND SHORTAGE_W7 < 0 AND ABS(SHORTAGE_W7) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 8 AND SHORTAGE_W8 < 0 AND ABS(SHORTAGE_W8) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 9 AND SHORTAGE_W9 < 0 AND ABS(SHORTAGE_W9) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 10 AND SHORTAGE_W10 < 0 AND ABS(SHORTAGE_W10) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" WHEN CEIL(DELIVERY_DATE / 7) = 11 AND SHORTAGE_W11 < 0 AND ABS(SHORTAGE_W11) > MAT_ORDER_QTY THEN 'Y' \n"); strSqlString.Append(" ELSE 'N' \n"); strSqlString.Append(" END ORDER_WARNING \n"); strSqlString.Append(" , SHORTAGE_W0, SHORTAGE_W1, SHORTAGE_W2, SHORTAGE_W3, SHORTAGE_W4, SHORTAGE_W5 \n"); strSqlString.Append(" FROM (SELECT " + QueryCond1 + "\n"); strSqlString.Append(" , SUM(ROUND(REMAIN_W0,0)) AS REMAIN_W0 " + "\n"); strSqlString.Append(" , SUM(ROUND(REMAIN_W1,0)) AS REMAIN_W1 " + "\n"); strSqlString.Append(" , SUM(ROUND(REMAIN_W2,0)) AS REMAIN_W2 " + "\n"); strSqlString.Append(" , SUM(ROUND(REMAIN_W3,0)) AS REMAIN_W3 " + "\n"); strSqlString.Append(" , SUM(ROUND(REMAIN_W4,0)) AS REMAIN_W4 " + "\n"); strSqlString.Append(" , SUM(ROUND(REMAIN_W5,0)) AS REMAIN_W5 " + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_SMT_IN + MAT_L_IN + MAT_WIK_WIP + MAT_INV_L_QTY)) AS MAT_L" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_INV_QTY)) AS MAT_INV_QTY" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) AS MAT_TTL" + "\n"); strSqlString.Append(" , SUM(TRUNC(MAT_NEED)) AS MAT_NEED" + "\n"); //strSqlString.Append(" , MAX(MAT_FORECAST_DAY) AS MAT_FORECAST_DAY " + "\n"); strSqlString.Append(" , TO_CHAR(CASE WHEN SUM(TRUNC(MAT_NEED)) = 0 THEN TO_DATE('" + cdvDate.SelectedValue() + "', 'YYYYMMDD')" + "\n"); strSqlString.Append(" WHEN (MAX(TRUNC(MAT_TTL)) / SUM(TRUNC(MAT_NEED))) >= 60 THEN TO_DATE('" + cdvDate.SelectedValue() + "', 'YYYYMMDD') + 60" + "\n"); strSqlString.Append(" ELSE (MAX(TRUNC(MAT_TTL)) / SUM(TRUNC(MAT_NEED))) + TO_DATE('" + cdvDate.SelectedValue() + "', 'YYYYMMDD')" + "\n"); strSqlString.Append(" END, 'YY/MM/DD') MAT_FORECAST_DAY" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_ORDER_QTY)) AS MAT_ORDER_QTY" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0,0)) AS SHORTAGE_W0" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1,0)) AS SHORTAGE_W1" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2,0)) AS SHORTAGE_W2" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2 + REMAIN_W3,0)) AS SHORTAGE_W3" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2 + REMAIN_W3 + REMAIN_W4,0)) AS SHORTAGE_W4" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2 + REMAIN_W3 + REMAIN_W4 + REMAIN_W5,0)) AS SHORTAGE_W5" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2 + REMAIN_W3 + REMAIN_W4 + REMAIN_W5 + REMAIN_W6,0)) AS SHORTAGE_W6" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2 + REMAIN_W3 + REMAIN_W4 + REMAIN_W5 + REMAIN_W6 + REMAIN_W7,0)) AS SHORTAGE_W7" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2 + REMAIN_W3 + REMAIN_W4 + REMAIN_W5 + REMAIN_W6 + REMAIN_W7 + REMAIN_W8,0)) AS SHORTAGE_W8" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2 + REMAIN_W3 + REMAIN_W4 + REMAIN_W5 + REMAIN_W6 + REMAIN_W7 + REMAIN_W8 + REMAIN_W9,0)) AS SHORTAGE_W9" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2 + REMAIN_W3 + REMAIN_W4 + REMAIN_W5 + REMAIN_W6 + REMAIN_W7 + REMAIN_W8 + REMAIN_W9 + REMAIN_W10,0)) AS SHORTAGE_W10" + "\n"); strSqlString.Append(" , MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2 + REMAIN_W3 + REMAIN_W4 + REMAIN_W5 + REMAIN_W6 + REMAIN_W7 + REMAIN_W8 + REMAIN_W9 + REMAIN_W10 + REMAIN_W11,0)) AS SHORTAGE_W11" + "\n"); strSqlString.Append(" , MAX(NVL(A.DELIVERY_DATE, 0)) AS DELIVERY_DATE" + "\n"); //strSqlString.Append(" , SUM(ROUND(SHORTAGE_W0,0)) AS SHORTAGE_W0" + "\n"); //strSqlString.Append(" , SUM(ROUND(SHORTAGE_W1,0)) AS SHORTAGE_W1" + "\n"); //strSqlString.Append(" , SUM(ROUND(SHORTAGE_W2,0)) AS SHORTAGE_W2" + "\n"); //strSqlString.Append(" , SUM(ROUND(SHORTAGE_W3,0)) AS SHORTAGE_W3" + "\n"); //strSqlString.Append(" , SUM(ROUND(SHORTAGE_W4,0)) AS SHORTAGE_W4" + "\n"); //strSqlString.Append(" , SUM(ROUND(SHORTAGE_W5,0)) AS SHORTAGE_W5" + "\n"); strSqlString.Append(" FROM RSUMMATMRP A " + "\n"); strSqlString.Append(" , MWIPMATDEF B " + "\n"); strSqlString.Append(" , (SELECT KEY_1, DATA_1 FROM MGCMTBLDAT WHERE 1=1 AND FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND TABLE_NAME IN ('H_SEC_AUTO_LOSS', 'H_HX_AUTO_LOSS') AND DATA_4 = 'A0395') GCM" + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY " + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID " + "\n"); strSqlString.Append(" AND A.MAT_ID = GCM.KEY_1(+)" + "\n"); strSqlString.Append(" AND A.WORK_DATE = '" + cdvDate.SelectedValue() + "'" + "\n"); if (txtMatCode.Text.Trim() != "%" && txtMatCode.Text.Trim() != "") { strSqlString.AppendFormat(" AND A.MATCODE LIKE '{0}'" + "\n", txtMatCode.Text); } if (txtProduct.Text.Trim() != "%" && txtProduct.Text.Trim() != "") { strSqlString.AppendFormat(" AND A.MAT_ID LIKE '{0}'" + "\n", txtProduct.Text); } if (cdvMatType.Text != "ALL" && cdvMatType.Text != "") { strSqlString.AppendFormat(" AND A.MAT_TYPE {0}" + "\n", cdvMatType.SelectedValueToQueryString); } #region 상세 조회에 따른 SQL문 생성 //if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0}" + "\n", udcWIPCondition1.SelectedValueToQueryString); //if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); //if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); //if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); //if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); //if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); //if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); //if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); //if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") // strSqlString.AppendFormat(" AND MAT.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); #endregion strSqlString.Append(" GROUP BY " + QueryCond2 + "\n"); if (ckbCheck.Checked == true) { //strSqlString.Append(" AND SHORTAGE_W2 < 0" + "\n"); strSqlString.Append(" HAVING MAX(TRUNC(MAT_TTL)) - SUM(ROUND(REMAIN_W0 + REMAIN_W1 + REMAIN_W2,0)) < 0" + "\n"); } strSqlString.Append(" ORDER BY " + QueryCond2 + ")) \n"); strSqlString.Append(" WHERE 1 = 1" + "\n"); if (ckbSafety_Warning.Checked == true) { strSqlString.Append(" AND SAFTY_WARNING = 'Y'" + "\n"); } if (ckbOrder_Warning.Checked == true) { strSqlString.Append(" AND ORDER_WARNING = 'Y'" + "\n"); } if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; strSqlString.Append("SELECT " + QueryCond1 + " \n"); strSqlString.Append(" , RES_STS_8 AS OPER, A.RES_UP_DOWN_FLAG AS RES_UP_DOWN_FLAG, LM_1 AS TAPE, WM_TYPE1 AS WBL_TAPE, BG_1 AS TARGET, BLADE_1 AS BLADE " + "\n"); strSqlString.Append(" , LF_MATERIAL AS SUBSTRATE, CAP_1 AS CAP, GW_1 AS GOLDWIRE, EMC_1 AS EMC, SB as SB, TRAY as TRAY " + "\n"); strSqlString.Append(" FROM MRASRESDEF A " + "\n"); strSqlString.Append(" , CLOTCRDDAT B " + "\n"); strSqlString.Append(" , MWIPMATDEF C " + "\n"); strSqlString.Append(" WHERE 1 = 1 " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY(+) " + "\n"); strSqlString.Append(" AND A.FACTORY = C.FACTORY(+) " + "\n"); strSqlString.Append(" AND A.RES_STS_2 = B.MAT_ID(+) " + "\n"); strSqlString.Append(" AND A.RES_STS_2 = C.MAT_ID(+) " + "\n"); strSqlString.Append(" AND A.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND A.DELETE_FLAG = ' ' " + "\n"); strSqlString.Append(" AND A.RES_STS_8 != ' ' " + "\n"); strSqlString.Append(" AND A.RES_ID NOT LIKE 'BSP%' " + "\n"); strSqlString.Append(" AND A.RES_STS_8 " + cdvOper.SelectedValueToQueryString + "\n"); strSqlString.Append(" AND A.RES_STS_2 LIKE '" + txtSearchProduct.Text + "' " + "\n" + "\n"); #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND C.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND C.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND C.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND C.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND C.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND C.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND C.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND C.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND C.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.AppendFormat(" GROUP BY {0}, RES_STS_8, A.RES_UP_DOWN_FLAG, LM_1, WM_TYPE1, BG_1, BLADE_1, LF_MATERIAL, CAP_1, GW_1, EMC_1, SB, TRAY " + "\n", QueryCond2); strSqlString.AppendFormat(" ORDER BY RES_ID, OPER " + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1; string QueryCond2; string QueryCond3; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; strSqlString.Append("WITH DT AS (" + "\n"); strSqlString.Append("SELECT SYS_DATE, MAT_ID" + "\n"); strSqlString.Append(" , SHP_QTY, SUM_SHP_QTY, PLN_QTY, SUM_PLN_QTY" + "\n"); strSqlString.Append(" , SHP_QTY - PLN_QTY AS DEF_QTY" + "\n"); // 2012-11-29-임종우 : 누계차이 부분 사용 안함 (김은석 요청) //strSqlString.Append(" , SUM_SHP_QTY - SUM_PLN_QTY AS DEF_QTY" + "\n"); strSqlString.Append(" , EXP_QTY" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT SYS_DATE" + "\n"); strSqlString.Append(" , A.MAT_ID" + "\n"); strSqlString.Append(" , NVL(SHP_QTY,0) AS SHP_QTY" + "\n"); strSqlString.Append(" , SUM(NVL(SHP_QTY,0)) OVER(PARTITION BY A.MAT_ID ORDER BY SYS_DATE ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS SUM_SHP_QTY " + "\n"); strSqlString.Append(" , NVL(PLN_QTY,0) AS PLN_QTY" + "\n"); strSqlString.Append(" , SUM(NVL(PLN_QTY,0)) OVER(PARTITION BY A.MAT_ID ORDER BY SYS_DATE ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS SUM_PLN_QTY " + "\n"); strSqlString.Append(" , NVL(D.EXP_QTY,0) AS EXP_QTY" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT SYS_DATE, MAT_ID" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT *" + "\n"); strSqlString.Append(" FROM MWIPMATDEF" + "\n"); strSqlString.Append(" WHERE FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "'" + "\n"); strSqlString.Append(" AND MAT_ID LIKE 'SES%'" + "\n"); strSqlString.Append(" AND DELETE_FLAG = ' '" + "\n"); //상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT *" + "\n"); strSqlString.Append(" FROM MWIPCALDEF" + "\n"); strSqlString.Append(" WHERE CALENDAR_ID = 'SE'" + "\n"); strSqlString.Append(" AND (PLAN_YEAR, PLAN_WEEK) = (SELECT PLAN_YEAR, PLAN_WEEK FROM MWIPCALDEF WHERE CALENDAR_ID = 'SE' AND SYS_DATE = '" + cdvDate.Value.ToString("yyyyMMdd") + "') " + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT WORK_DATE" + "\n"); strSqlString.Append(" , MAT_ID" + "\n"); strSqlString.Append(" , SUM(S1_FAC_OUT_QTY_1+S2_FAC_OUT_QTY_1+S3_FAC_OUT_QTY_1) AS SHP_QTY " + "\n"); strSqlString.Append(" FROM RSUMFACMOV" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND WORK_DATE BETWEEN '" + DateDT.Rows[0][0].ToString() + "' AND '" + DateDT.Rows[6][0].ToString() + "'" + "\n"); strSqlString.Append(" AND FACTORY NOT IN ('RETURN','" + GlobalVariable.gsAssyDefaultFactory + "') " + "\n"); strSqlString.Append(" AND MAT_ID LIKE 'SES%'" + "\n"); strSqlString.Append(" GROUP BY WORK_DATE, MAT_ID" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT PLAN_DAY, MAT_ID, SUM(PLAN_QTY) AS PLN_QTY" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT PLAN_DAY, MAT_ID, PLAN_QTY" + "\n"); strSqlString.Append(" FROM CWIPPLNDAY" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND PLAN_DAY BETWEEN '" + DateDT.Rows[0][0].ToString() + "' AND '" + DateDT.Rows[6][0].ToString() + "'" + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "'" + "\n"); strSqlString.Append(" UNION" + "\n"); strSqlString.Append(" SELECT PLAN_DAY, MAT_ID, PLAN_QTY" + "\n"); strSqlString.Append(" FROM CWIPPLNSNP@RPTTOMES " + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND SNAPSHOT_DAY BETWEEN '" + DateDT.Rows[0][0].ToString() + "' AND '" + DateDT.Rows[6][0].ToString() + "'" + "\n"); strSqlString.Append(" AND PLAN_DAY = SNAPSHOT_DAY" + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "'" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" GROUP BY PLAN_DAY, MAT_ID" + "\n"); strSqlString.Append(" ) C" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT PLAN_DATE, MAT_ID, SUM(QTY_1) AS EXP_QTY" + "\n"); strSqlString.Append(" FROM CPLNSHPDAY@RPTTOMES" + "\n"); strSqlString.Append(" WHERE FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "'" + "\n"); strSqlString.Append(" AND PLAN_DATE BETWEEN '" + DateDT.Rows[0][0].ToString() + "' AND '" + DateDT.Rows[6][0].ToString() + "'" + "\n"); strSqlString.Append(" GROUP BY PLAN_DATE, MAT_ID" + "\n"); strSqlString.Append(" ) D" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID(+)" + "\n"); strSqlString.Append(" AND A.MAT_ID = C.MAT_ID(+)" + "\n"); strSqlString.Append(" AND A.MAT_ID = D.MAT_ID(+)" + "\n"); strSqlString.Append(" AND A.SYS_DATE = B.WORK_DATE(+)" + "\n"); strSqlString.Append(" AND A.SYS_DATE = C.PLAN_DAY(+)" + "\n"); strSqlString.Append(" AND A.SYS_DATE = D.PLAN_DATE(+)" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(") " + "\n"); strSqlString.AppendFormat("SELECT {0} " + "\n", QueryCond3); strSqlString.Append(" , RN" + "\n"); strSqlString.Append(" , SUM(D0) AS D0 " + "\n"); strSqlString.Append(" , SUM(D1) AS D1 " + "\n"); strSqlString.Append(" , SUM(D2) AS D2 " + "\n"); strSqlString.Append(" , SUM(D3) AS D3 " + "\n"); strSqlString.Append(" , SUM(D4) AS D4 " + "\n"); strSqlString.Append(" , SUM(D5) AS D5 " + "\n"); strSqlString.Append(" , SUM(D6) AS D6 " + "\n"); strSqlString.Append(" , SUM(TTL) AS TTL " + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT '계획' AS RN" + "\n"); strSqlString.Append(" , MAT_ID" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[0][0].ToString() + "', PLN_QTY)) AS D0" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[1][0].ToString() + "', PLN_QTY)) AS D1" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[2][0].ToString() + "', PLN_QTY)) AS D2" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[3][0].ToString() + "', PLN_QTY)) AS D3" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[4][0].ToString() + "', PLN_QTY)) AS D4" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[5][0].ToString() + "', PLN_QTY)) AS D5" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[6][0].ToString() + "', PLN_QTY)) AS D6" + "\n"); strSqlString.Append(" , SUM(PLN_QTY) AS TTL " + "\n"); strSqlString.Append(" FROM DT" + "\n"); strSqlString.Append(" GROUP BY MAT_ID" + "\n"); strSqlString.Append(" UNION ALL" + "\n"); strSqlString.Append(" SELECT '실적' AS RN" + "\n"); strSqlString.Append(" , MAT_ID" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[0][0].ToString() + "', SHP_QTY)) AS D0" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[1][0].ToString() + "', SHP_QTY)) AS D1" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[2][0].ToString() + "', SHP_QTY)) AS D2" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[3][0].ToString() + "', SHP_QTY)) AS D3" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[4][0].ToString() + "', SHP_QTY)) AS D4" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[5][0].ToString() + "', SHP_QTY)) AS D5" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[6][0].ToString() + "', SHP_QTY)) AS D6" + "\n"); strSqlString.Append(" , SUM(SHP_QTY) AS TTL " + "\n"); strSqlString.Append(" FROM DT" + "\n"); strSqlString.Append(" GROUP BY MAT_ID" + "\n"); strSqlString.Append(" UNION ALL" + "\n"); strSqlString.Append(" SELECT '차이(누적)' AS RN" + "\n"); strSqlString.Append(" , MAT_ID" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[0][0].ToString() + "', DEF_QTY)) AS D0" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[1][0].ToString() + "', DEF_QTY)) AS D1" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[2][0].ToString() + "', DEF_QTY)) AS D2" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[3][0].ToString() + "', DEF_QTY)) AS D3" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[4][0].ToString() + "', DEF_QTY)) AS D4" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[5][0].ToString() + "', DEF_QTY)) AS D5" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[6][0].ToString() + "', DEF_QTY)) AS D6" + "\n"); strSqlString.Append(" , SUM(DEF_QTY) AS TTL " + "\n"); strSqlString.Append(" FROM DT" + "\n"); strSqlString.Append(" GROUP BY MAT_ID " + "\n"); strSqlString.Append(" UNION ALL" + "\n"); strSqlString.Append(" SELECT '예상' AS RN" + "\n"); strSqlString.Append(" , MAT_ID" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[0][0].ToString() + "', EXP_QTY)) AS D0" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[1][0].ToString() + "', EXP_QTY)) AS D1" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[2][0].ToString() + "', EXP_QTY)) AS D2" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[3][0].ToString() + "', EXP_QTY)) AS D3" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[4][0].ToString() + "', EXP_QTY)) AS D4" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[5][0].ToString() + "', EXP_QTY)) AS D5" + "\n"); strSqlString.Append(" , SUM(DECODE(SYS_DATE, '" + DateDT.Rows[6][0].ToString() + "', EXP_QTY)) AS D6" + "\n"); strSqlString.Append(" , SUM(EXP_QTY) AS TTL " + "\n"); strSqlString.Append(" FROM DT" + "\n"); strSqlString.Append(" GROUP BY MAT_ID " + "\n"); strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , MWIPMATDEF B" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID" + "\n"); strSqlString.Append(" AND A.MAT_ID IN (SELECT DISTINCT MAT_ID FROM DT WHERE DEF_QTY <> 0)" + "\n"); strSqlString.Append(" AND B.FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "'" + "\n"); strSqlString.AppendFormat(" GROUP BY {0}, RN" + "\n", QueryCond1); strSqlString.AppendFormat(" ORDER BY {0}, DECODE(RN, '계획', 1, '실적', 2, '차이(누적)', 3, 4)" + "\n", QueryCond1); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; string stToday = null; string stMonth = null; StringBuilder strSqlString = new StringBuilder(); udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; stToday = cdvDate.Value.ToString("yyyyMMdd"); // 현재 조회일 stMonth = cdvDate.Value.ToString("yyyyMM"); QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; strSqlString.AppendFormat("SELECT {0}" + "\n", QueryCond2); strSqlString.Append(" , SUM(PLAN_QTY_ASSY) AS PLAN_QTY_ASSY" + "\n"); strSqlString.Append(" , STEPID, DESCRIPT, UNIT" + "\n"); strSqlString.Append(" , MAX(CASE WHEN STEPID BETWEEN 'A0000' AND 'A0399' THEN LOSS_QTY * USAGE ELSE USAGE END) USAGE" + "\n"); strSqlString.Append(" , ROUND(SUM(SO_QTY), 1) AS SO_QTY" + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1)), 1) AS USE_QTY" + "\n"); strSqlString.Append(" , ROUND(CASE WHEN SUM(NVL(SO_QTY,0)) = 0 THEN 0" + "\n"); strSqlString.Append(" WHEN SUM(NVL(SO_QTY,0)) - SUM(NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0)) < 0 THEN 0" + "\n"); strSqlString.Append(" ELSE SUM(NVL(SO_QTY,0)) - SUM(NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0)) " + "\n"); strSqlString.Append(" END, 1) AS REMAIN_QTY" + "\n"); strSqlString.Append(" , ROUND((CASE WHEN SUM(NVL(SO_QTY,0)) = 0 THEN 0" + "\n"); strSqlString.Append(" WHEN SUM(NVL(SO_QTY,0)) - SUM(NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0)) < 0 THEN 0" + "\n"); strSqlString.Append(" ELSE SUM(NVL(SO_QTY,0)) - SUM(NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0)) " + "\n"); strSqlString.Append(" END / (SELECT LAST_DAY(TO_DATE('" + stToday + "', 'YYYYMMDD')) - TO_DATE('" + stToday + "', 'YYYYMMDD') LASTDAY FROM DUAL)), 1) AS DAY_QTY" + "\n"); /* * strSqlString.Append(" , ROUND(SUM(CASE WHEN NVL(SO_QTY,0) = 0 THEN 0" + "\n"); * strSqlString.Append(" WHEN NVL(SO_QTY,0) - NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0) < 0 THEN 0" + "\n"); * strSqlString.Append(" ELSE NVL(SO_QTY,0) - NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0) " + "\n"); * strSqlString.Append(" END), 1) AS REMAIN_QTY" + "\n"); * strSqlString.Append(" , ROUND(SUM((CASE WHEN NVL(SO_QTY,0) = 0 THEN 0" + "\n"); * strSqlString.Append(" WHEN NVL(SO_QTY,0) - NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0) < 0 THEN 0" + "\n"); * strSqlString.Append(" ELSE NVL(SO_QTY,0) - NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0) " + "\n"); * strSqlString.Append(" END) / (SELECT LAST_DAY(TO_DATE('" + stToday + "', 'YYYYMMDD')) - TO_DATE('" + stToday + "', 'YYYYMMDD') LASTDAY FROM DUAL)), 1) AS DAY_QTY" + "\n"); */ strSqlString.Append(" , ROUND(SUM(AVG_USE_QTY), 1) AS AVG_USE_QTY" + "\n"); //1212 strSqlString.Append(" , ROUND(DECODE(ROUND((CASE WHEN SUM(NVL(SO_QTY,0)) = 0 THEN 0" + "\n"); strSqlString.Append(" WHEN SUM(NVL(SO_QTY,0)) - SUM(NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0)) < 0 THEN 0" + "\n"); strSqlString.Append(" ELSE SUM(NVL(SO_QTY,0)) - SUM(NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0)) " + "\n"); strSqlString.Append(" END / (SELECT LAST_DAY(TO_DATE('" + stToday + "', 'YYYYMMDD')) - TO_DATE('" + stToday + "', 'YYYYMMDD') LASTDAY FROM DUAL)), 1),0,0, " + "\n"); strSqlString.Append(" ROUND(INV_QTY + L_IN, 1) / ROUND((CASE WHEN SUM(NVL(SO_QTY,0)) = 0 THEN 0" + "\n"); strSqlString.Append(" WHEN SUM(NVL(SO_QTY,0)) - SUM(NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0)) < 0 THEN 0" + "\n"); strSqlString.Append(" ELSE SUM(NVL(SO_QTY,0)) - SUM(NVL(DECODE(MAT_TYPE, 'TE', TE_USE_QTY, M_USE_QTY_1),0)) " + "\n"); strSqlString.Append(" END / (SELECT LAST_DAY(TO_DATE('" + stToday + "', 'YYYYMMDD')) - TO_DATE('" + stToday + "', 'YYYYMMDD') LASTDAY FROM DUAL)), 1)),1) AS EXPIRY_DAY" + "\n"); strSqlString.Append(" , ROUND(INV_QTY, 1) AS INV_QTY" + "\n"); strSqlString.Append(" , ROUND(L_IN, 1) AS L_IN " + "\n"); strSqlString.Append(" , ROUND(INV_QTY + L_IN, 1) AS TTL" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.AppendFormat(" SELECT {0}" + "\n", QueryCond3); strSqlString.Append(" , PLAN_QTY_ASSY, STEPID, DESCRIPT, UNIT" + "\n"); strSqlString.Append(" , PLAN_QTY_ASSY * (CASE WHEN MAT_TYPE <> 'TE' THEN DECODE(UNIT_QTY, 0, 1, UNIT_QTY / PAR_BASE_QTY)" + "\n"); strSqlString.Append(" ELSE DECODE(NVL(MAT_CMF_13, ' '), ' ', 1, TO_NUMBER(REPLACE(MAT_CMF_13,',','')))" + "\n"); strSqlString.Append(" END) AS SO_QTY" + "\n"); strSqlString.Append(" , CASE WHEN MAT_TYPE <> 'TE' THEN UNIT_QTY / PAR_BASE_QTY" + "\n"); strSqlString.Append(" ELSE DECODE(NVL(MAT_CMF_13, ' '), ' ', 0, TO_NUMBER(REPLACE(MAT_CMF_13,',','')))" + "\n"); strSqlString.Append(" END AS USAGE " + "\n"); strSqlString.Append(" , MAT_CMF_13, MAT_TYPE" + "\n"); strSqlString.Append(" , CASE WHEN MAT_TYPE <> 'TE' THEN 0" + "\n"); strSqlString.Append(" ELSE (BG_QTY / DECODE(NVL(MAT_CMF_13, ' '), ' ', 1, TO_NUMBER(REPLACE(MAT_CMF_13,',',''))))" + "\n"); strSqlString.Append(" END AS TE_USE_QTY" + "\n"); strSqlString.Append(" , M_USE_QTY_1, ROUND(AVG_USE_QTY,2) AS AVG_USE_QTY, INV_QTY, L_IN" + "\n"); strSqlString.Append(" , NVL(GCM.DATA_1, 1) AS LOSS_QTY" + "\n"); strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT A.MAT_GRP_1, A.MAT_GRP_2, A.MAT_GRP_3, A.MAT_GRP_4, A.MAT_GRP_5, A.MAT_GRP_6, A.MAT_GRP_7, A.MAT_GRP_8, A.MAT_GRP_9, A.MAT_CMF_7, A.MAT_CMF_10, A.MAT_CMF_13, A.MAT_ID " + "\n"); strSqlString.Append(" , B.STEPID, B.MATCODE, B.DESCRIPT, B.PAR_BASE_QTY, B.UNIT_QTY, B.UNIT, B.RESV_FIELD_2 AS MAT_TYPE " + "\n"); strSqlString.Append(" FROM MWIPMATDEF@RPTTOMES A " + "\n"); strSqlString.Append(" , CWIPBOMDEF B " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND A.MAT_ID = B.PARTNUMBER(+) " + "\n"); strSqlString.Append(" AND A.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND A.MAT_TYPE = 'FG' " + "\n"); strSqlString.Append(" AND A.DELETE_FLAG = ' ' " + "\n"); strSqlString.Append(" AND B.RESV_FLAG_1(+) = 'Y' " + "\n"); strSqlString.Append(" AND B.RESV_FIELD_2(+) <> 'WW' " + "\n"); strSqlString.Append(" ) MAT" + "\n"); strSqlString.Append(" , ( " + "\n"); strSqlString.Append(" SELECT FACTORY,MAT_ID,PLAN_QTY_ASSY,PLAN_MONTH " + "\n"); strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT FACTORY, MAT_ID, SUM(PLAN_QTY_ASSY) AS PLAN_QTY_ASSY, PLAN_MONTH " + "\n"); strSqlString.Append(" FROM CWIPPLNMON " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND MAT_ID NOT LIKE 'SES%' " + "\n"); strSqlString.Append(" GROUP BY FACTORY, MAT_ID, PLAN_MONTH " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); strSqlString.Append(" SELECT FACTORY, MAT_ID, SUM(PLAN_QTY) AS PLAN_QTY_ASSY , '" + stMonth + "' AS PLAN_MONTH " + "\n"); strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT FACTORY, MAT_ID, SUM(NVL(PLAN_QTY, 0)) AS PLAN_QTY " + "\n"); strSqlString.Append(" FROM CWIPPLNDAY " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND PLAN_DAY BETWEEN TO_CHAR(TRUNC(TO_DATE('" + stToday + "', 'YYYYMMDD'), 'MM'), 'YYYYMMDD') AND TO_CHAR(TRUNC(LAST_DAY(TO_DATE('" + stToday + "', 'YYYYMMDD'))), 'YYYYMMDD') " + "\n"); strSqlString.Append(" AND IN_OUT_FLAG = 'OUT' " + "\n"); strSqlString.Append(" AND CLASS = 'ASSY' " + "\n"); strSqlString.Append(" GROUP BY FACTORY, MAT_ID " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); strSqlString.Append(" SELECT CM_KEY_1 AS FACTORY, MAT_ID" + "\n"); strSqlString.Append(" , SUM(S1_FAC_OUT_QTY_1 + S2_FAC_OUT_QTY_1 + S3_FAC_OUT_QTY_1 + S4_FAC_OUT_QTY_1) AS PLAN_QTY " + "\n"); strSqlString.Append(" FROM RSUMFACMOV " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND WORK_DATE BETWEEN TO_CHAR(TRUNC(TO_DATE('" + stToday + "', 'YYYYMMDD'), 'MM'), 'YYYYMMDD') AND TO_CHAR(TRUNC(TO_DATE('" + stToday + "', 'YYYYMMDD'), 'IW') - 1, 'YYYYMMDD')" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); strSqlString.Append(" AND CM_KEY_1 = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND CM_KEY_3 LIKE 'P%' " + "\n"); strSqlString.Append(" AND MAT_ID LIKE 'SES%' " + "\n"); strSqlString.Append(" GROUP BY CM_KEY_1, MAT_ID " + "\n"); strSqlString.Append(" ) " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" GROUP BY FACTORY, MAT_ID " + "\n"); strSqlString.Append(" ) " + "\n"); strSqlString.Append(" WHERE PLAN_MONTH = '" + stMonth + "' " + "\n"); strSqlString.Append(" AND PLAN_QTY_ASSY > 0 " + "\n"); strSqlString.Append(" ) PLN " + "\n"); strSqlString.Append(" , ( " + "\n"); strSqlString.Append(" SELECT P_MAT_ID, M_MAT_ID, OPER, SUM(M_USE_QTY_1) AS M_USE_QTY_1 " + "\n"); strSqlString.Append(" , SUM(CASE WHEN WORK_DATE BETWEEN TO_CHAR(TO_DATE('" + stToday + "', 'YYYYMMDD') - 3, 'YYYYMMDD') AND TO_CHAR(TO_DATE('" + stToday + "', 'YYYYMMDD') - 1, 'YYYYMMDD') THEN M_USE_QTY_1 " + "\n"); strSqlString.Append(" ELSE 0 " + "\n"); strSqlString.Append(" END) / 3 AS AVG_USE_QTY " + "\n"); strSqlString.Append(" FROM RSUMMATMOV " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND WORK_DATE BETWEEN TO_CHAR(TRUNC(TO_DATE('" + stToday + "', 'YYYYMMDD'), 'MM'), 'YYYYMMDD') AND TO_CHAR(TRUNC(LAST_DAY(TO_DATE('" + stToday + "', 'YYYYMMDD'))), 'YYYYMMDD') " + "\n"); strSqlString.Append(" GROUP BY P_MAT_ID, M_MAT_ID, OPER " + "\n"); strSqlString.Append(" ) BOM " + "\n"); strSqlString.Append(" , ( " + "\n"); strSqlString.Append(" SELECT MAT_ID, SUM(INV_QTY) AS INV_QTY, SUM(L_IN) AS L_IN " + "\n"); strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT ITEM_CD AS MAT_ID, SUM(INV_QTY) AS INV_QTY, 0 AS L_IN " + "\n"); strSqlString.Append(" FROM IERPWMSSTS@RPTTOMES " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); //2011-12-08-김민우 : 창고재고 “ 값 = “ 원부자재 재공 현황 “ 화면의 “ 창고재고 + 현장창고재고 “ 값으로 수정 요청 // 기존 AND WH_CD IN ('MH01', 'B10') 변경 AND WH_CD IN ('MH01') strSqlString.Append(" AND WH_CD IN ('MH01', 'B10') " + "\n"); strSqlString.Append(" AND INV_QTY > 0 " + "\n"); strSqlString.Append(" GROUP BY ITEM_CD " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); strSqlString.Append(" SELECT MAT_ID, 0, SUM(QTY_1) AS QTY_1 " + "\n"); strSqlString.Append(" FROM RWIPLOTSTS " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND OPER LIKE 'V%' " + "\n"); strSqlString.Append(" AND LOT_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LOT_TYPE <> 'W' " + "\n"); strSqlString.Append(" GROUP BY MAT_ID " + "\n"); strSqlString.Append(" ) " + "\n"); strSqlString.Append(" GROUP BY MAT_ID " + "\n"); strSqlString.Append(" ) WIP " + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT MAT_ID" + "\n"); strSqlString.Append(" , SUM(S1_END_QTY_1 + S2_END_QTY_1 + S3_END_QTY_1) AS BG_QTY " + "\n"); strSqlString.Append(" FROM RSUMWIPMOV" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND WORK_DATE BETWEEN TO_CHAR(TRUNC(TO_DATE('" + stToday + "', 'YYYYMMDD'), 'MM'), 'YYYYMMDD') AND TO_CHAR(TRUNC(LAST_DAY(TO_DATE('" + stToday + "', 'YYYYMMDD'))), 'YYYYMMDD')" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); strSqlString.Append(" AND CM_KEY_1 = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND OPER = 'A0040'" + "\n"); strSqlString.Append(" GROUP BY MAT_ID" + "\n"); strSqlString.Append(" ) BGE" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT KEY_1, DATA_1" + "\n"); strSqlString.Append(" FROM MGCMTBLDAT" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TABLE_NAME IN ('H_SEC_AUTO_LOSS', 'H_HX_AUTO_LOSS')" + "\n"); strSqlString.Append(" AND FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "'" + "\n"); strSqlString.Append(" AND DATA_4 = 'A0395'" + "\n"); strSqlString.Append(" ) GCM" + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND MAT.MAT_ID = PLN.MAT_ID(+)" + "\n"); strSqlString.Append(" AND MAT.MAT_ID = BOM.P_MAT_ID(+) " + "\n"); strSqlString.Append(" AND MAT.MATCODE = BOM.M_MAT_ID(+) " + "\n"); strSqlString.Append(" AND MAT.STEPID = BOM.OPER(+) " + "\n"); strSqlString.Append(" AND MAT.MATCODE = WIP.MAT_ID(+) " + "\n"); strSqlString.Append(" AND MAT.MAT_ID = BGE.MAT_ID(+)" + "\n"); strSqlString.Append(" AND MAT.MATCODE = GCM.KEY_1(+) " + "\n"); strSqlString.Append(" AND (MAT.MAT_TYPE <> 'TE' OR (MAT.MAT_TYPE = 'TE' AND MAT.STEPID = 'A0040'))" + "\n"); //strSqlString.Append(" AND NVL(PLAN_QTY_ASSY,0) + NVL(M_USE_QTY_1,0) + NVL(INV_QTY,0) + NVL(L_IN,0) + NVL(BG_QTY,0) > 0" + "\n"); strSqlString.Append(" AND MAT.MAT_TYPE = '" + cdvMatType.Text + "'" + "\n"); if (txtProduct.Text.Trim() != "%" && txtProduct.Text.Trim() != "") { strSqlString.AppendFormat(" AND MAT.MAT_ID LIKE '{0}'" + "\n", txtProduct.Text); } if (cdvMatCode.Text != "ALL" && cdvMatCode.Text != "") { strSqlString.AppendFormat(" AND MAT.MATCODE {0} " + "\n", cdvMatCode.SelectedValueToQueryString); } #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0}" + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } #endregion strSqlString.Append(" )" + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND NVL(PLAN_QTY_ASSY,0) + NVL(SO_QTY,0) + NVL(TE_USE_QTY,0) + NVL(M_USE_QTY_1,0) > 0" + "\n"); strSqlString.AppendFormat(" GROUP BY {0}, STEPID, DESCRIPT, UNIT, USAGE, INV_QTY, L_IN " + "\n", QueryCond1); strSqlString.AppendFormat(" ORDER BY {0}, STEPID " + "\n", QueryCond1); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string strDate = cdvDate.Value.ToString("yyyyMMdd"); string sYesterday = cdvDate.Value.AddDays(-1).ToString("yyyyMMdd"); udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; strSqlString.AppendFormat("SELECT {0}, A.LV_TYPE" + "\n", QueryCond1); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + sYesterday + "23', QTY, 0)) AS TIME_23" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "00', QTY, 0)) AS TIME_0" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "01', QTY, 0)) AS TIME_1" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "02', QTY, 0)) AS TIME_2" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "03', QTY, 0)) AS TIME_3" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "04', QTY, 0)) AS TIME_4" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "05', QTY, 0)) AS TIME_5" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "06', QTY, 0)) AS TIME_6" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "07', QTY, 0)) AS TIME_7" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "08', QTY, 0)) AS TIME_8" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "09', QTY, 0)) AS TIME_9" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "10', QTY, 0)) AS TIME_10" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "11', QTY, 0)) AS TIME_11" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "12', QTY, 0)) AS TIME_12" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "13', QTY, 0)) AS TIME_13" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "14', QTY, 0)) AS TIME_14" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "15', QTY, 0)) AS TIME_15" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "16', QTY, 0)) AS TIME_16" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "17', QTY, 0)) AS TIME_17" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "18', QTY, 0)) AS TIME_18" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "19', QTY, 0)) AS TIME_19" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "20', QTY, 0)) AS TIME_20" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "21', QTY, 0)) AS TIME_21" + "\n"); strSqlString.Append(" , SUM(DECODE(CUTOFF_DT, '" + strDate + "22', QTY, 0)) AS TIME_22" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT FACTORY, SUB_AREA_ID, RES_MODEL, MAT_ID, LV_TYPE, CUTOFF_DT, OPER" + "\n"); strSqlString.Append(" , CASE WHEN LV_TYPE = '대수' THEN FMB_CNT" + "\n"); strSqlString.Append(" WHEN LV_TYPE = 'RUN' THEN FMB_RUN" + "\n"); strSqlString.Append(" WHEN LV_TYPE = 'WAIT' THEN FMB_WAIT" + "\n"); strSqlString.Append(" END AS QTY" + "\n"); strSqlString.Append(" FROM RSUMARRDAT " + "\n"); strSqlString.Append(" , (SELECT DECODE(LEVEL, 1, '대수', 2, 'RUN', 3, 'WAIT') AS LV_TYPE FROM DUAL CONNECT BY LEVEL <= 3) " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND WORK_DATE IN ('" + sYesterday + "','" + strDate + "') " + "\n"); strSqlString.Append(" AND GUBUN = 'SUM' " + "\n"); strSqlString.Append(" AND FACTORY = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" AND MAT_ID LIKE '" + txtSearchProduct.Text + "' " + "\n"); if (cdvStep.Text != "ALL" && cdvStep.Text.Trim() != "") { strSqlString.Append(" AND OPER " + cdvStep.SelectedValueToQueryString + "\n"); } if (cdvModel.Text != "ALL" && cdvModel.Text.Trim() != "") { strSqlString.Append(" AND RES_MODEL " + cdvModel.SelectedValueToQueryString + "\n"); } if (ckbWB.Checked == true) { strSqlString.Append(" AND OPER LIKE 'A06%'" + "\n"); } strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , MWIPMATDEF B" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID" + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY" + "\n"); strSqlString.Append(" AND B.DELETE_FLAG = ' '" + "\n"); #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.AppendFormat("GROUP BY {0}, B.FACTORY, A.LV_TYPE" + "\n", QueryCond2); strSqlString.AppendFormat("ORDER BY {0}, DECODE(LV_TYPE, '대수', 1, 'RUN', 2, 'WAIT', 3)" + "\n", QueryCond2); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string sStart_Tran_Time = cdvFromToDate.Start_Tran_Time.ToString(); string sEnd_Tran_Time = cdvFromToDate.End_Tran_Time.ToString(); udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; StringBuilder query1 = new StringBuilder(); StringBuilder query2 = new StringBuilder(); // 2011-02-08-임종우 : TAT 단위 시간 단위 추가 표시 (임태성 요청) if (ckdTime.Checked == true) { for (int i = 0; i < dtOper.Rows.Count; i++) { query1.Append(" , ROUND(SUM(TAT.WAIT_" + dtOper.Rows[i][0] + ") * 24,2) AS WAIT_" + dtOper.Rows[i][0] + "\n"); query1.Append(" , ROUND(SUM(TAT.RUN_" + dtOper.Rows[i][0] + ") * 24,2) AS RUN_" + dtOper.Rows[i][0] + "\n"); query2.Append(" , DECODE(LTH.OPER,'" + dtOper.Rows[i][0] + "',LTH.WAIT_TAT_QTY/HIS.SHIP_QTY) AS WAIT_" + dtOper.Rows[i][0] + "\n"); query2.Append(" , DECODE(LTH.OPER,'" + dtOper.Rows[i][0] + "',LTH.PROC_TAT_QTY/HIS.SHIP_QTY) AS RUN_" + dtOper.Rows[i][0] + "\n"); } } else { for (int i = 0; i < dtOper.Rows.Count; i++) { query1.Append(" , ROUND(SUM(TAT.WAIT_" + dtOper.Rows[i][0] + "),2) AS WAIT_" + dtOper.Rows[i][0] + "\n"); query1.Append(" , ROUND(SUM(TAT.RUN_" + dtOper.Rows[i][0] + "),2) AS RUN_" + dtOper.Rows[i][0] + "\n"); query2.Append(" , DECODE(LTH.OPER,'" + dtOper.Rows[i][0] + "',LTH.WAIT_TAT_QTY/HIS.SHIP_QTY) AS WAIT_" + dtOper.Rows[i][0] + "\n"); query2.Append(" , DECODE(LTH.OPER,'" + dtOper.Rows[i][0] + "',LTH.PROC_TAT_QTY/HIS.SHIP_QTY) AS RUN_" + dtOper.Rows[i][0] + "\n"); } } strSqlString.AppendFormat("SELECT {0}" + "\n", QueryCond2); strSqlString.Append(" , TAT.LOT_ID,TAT.SHIP_FACTORY,TAT.SHIP_QTY " + "\n"); // 2011-02-08-임종우 : TAT 단위 시간 단위 추가 표시 (임태성 요청) if (ckdTime.Checked == true) { strSqlString.Append(" , ROUND(SUM(TAT.TAT) * 24,2) AS TAT " + "\n"); } else { strSqlString.Append(" , ROUND(SUM(TAT.TAT),2) AS TAT " + "\n"); } strSqlString.Append(query1.ToString()); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT HIS.MAT_ID" + "\n"); strSqlString.Append(" , LTH.LOT_ID" + "\n"); strSqlString.Append(" , '" + cdvFactory.Text + "' AS SHIP_FACTORY" + "\n"); strSqlString.Append(" , HIS.SHIP_QTY" + "\n"); strSqlString.Append(" , LTH.OPER" + "\n"); strSqlString.Append(" , LTH.TOTAL_TAT_QTY/HIS.SHIP_QTY AS TAT" + "\n"); strSqlString.Append(query2.ToString()); strSqlString.Append(" FROM CSUMTATLOT@RPTTOMES LTH" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT TAT.FACTORY, TAT.LOT_ID, TAT.MAT_ID, TAT.SHIP_TIME AS WORK_DATE" + "\n"); strSqlString.Append(" , SHIP_QTY" + "\n"); strSqlString.Append(" FROM CSUMTATLOT@RPTTOMES TAT" + "\n"); strSqlString.Append(" , MWIPMATDEF MAT" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TAT.FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND TAT.FACTORY = MAT.FACTORY" + "\n"); strSqlString.Append(" AND TAT.MAT_ID = MAT.MAT_ID" + "\n"); strSqlString.Append(" AND TAT.MAT_ID LIKE '" + txtProduct.Text + "'" + "\n"); strSqlString.Append(" AND MAT.DELETE_FLAG = ' '" + "\n"); //strSqlString.Append(" AND TAT.OPER ='AZ010'" + "\n"); strSqlString.Append(" AND TAT.OPER IN ('AZ010', 'BZ010') " + "\n"); //strSqlString.Append(" AND TAT.LOT_CMF_5 " + cdvLotType.SelectedValueToQueryString + "\n"); if (cdvLotType.Text != "ALL") { strSqlString.Append(" AND TAT.LOT_CMF_5 LIKE '" + cdvLotType.Text + "'" + "\n"); } strSqlString.Append(" AND TAT.SHIP_TIME BETWEEN '" + sStart_Tran_Time + "' AND '" + sEnd_Tran_Time + "'\n"); strSqlString.Append(" ) HIS" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND LTH.FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); strSqlString.Append(" AND LTH.MAT_ID=HIS.MAT_ID" + "\n"); strSqlString.Append(" AND LTH.LOT_ID=HIS.LOT_ID" + "\n"); if (cdvOper.ToText != "" && cdvOper.FromText != "") { strSqlString.Append(" AND LTH.OPER BETWEEN '" + cdvOper.FromText + "' AND '" + cdvOper.ToText + "'" + "\n"); } //strSqlString.Append(" AND LTH.SHIP_TIME BETWEEN '" + sStart_Tran_Time + "' AND '" + sEnd_Tran_Time + "'\n"); strSqlString.Append(" ) TAT" + "\n"); strSqlString.Append(" , MWIPMATDEF MAT" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TAT.MAT_ID=MAT.MAT_ID" + "\n"); strSqlString.Append(" AND MAT.FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); #region 상세 조회에 따른 SQL문 생성 if (cdvFactory.Text.Trim() == "HMKB1") { if (udcBUMPCondition1.Text != "ALL" && udcBUMPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0} " + "\n", udcBUMPCondition1.SelectedValueToQueryString); } if (udcBUMPCondition2.Text != "ALL" && udcBUMPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcBUMPCondition2.SelectedValueToQueryString); } if (udcBUMPCondition3.Text != "ALL" && udcBUMPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcBUMPCondition3.SelectedValueToQueryString); } if (udcBUMPCondition4.Text != "ALL" && udcBUMPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcBUMPCondition4.SelectedValueToQueryString); } if (udcBUMPCondition5.Text != "ALL" && udcBUMPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcBUMPCondition5.SelectedValueToQueryString); } if (udcBUMPCondition6.Text != "ALL" && udcBUMPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcBUMPCondition6.SelectedValueToQueryString); } if (udcBUMPCondition7.Text != "ALL" && udcBUMPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcBUMPCondition7.SelectedValueToQueryString); } if (udcBUMPCondition8.Text != "ALL" && udcBUMPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcBUMPCondition8.SelectedValueToQueryString); } if (udcBUMPCondition9.Text != "ALL" && udcBUMPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_CMF_14 {0} " + "\n", udcBUMPCondition9.SelectedValueToQueryString); } if (udcBUMPCondition10.Text != "ALL" && udcBUMPCondition10.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_CMF_2 {0} " + "\n", udcBUMPCondition10.SelectedValueToQueryString); } if (udcBUMPCondition11.Text != "ALL" && udcBUMPCondition11.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_CMF_3 {0} " + "\n", udcBUMPCondition11.SelectedValueToQueryString); } if (udcBUMPCondition12.Text != "ALL" && udcBUMPCondition12.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_CMF_4 {0} " + "\n", udcBUMPCondition12.SelectedValueToQueryString); } } else { //상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0}" + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0}" + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } } #endregion strSqlString.Append(" GROUP BY " + QueryCond1 + ",TAT.LOT_ID,TAT.SHIP_FACTORY,TAT.SHIP_QTY" + "\n"); strSqlString.Append(" ORDER BY " + QueryCond1 + ",TAT.LOT_ID,TAT.SHIP_FACTORY,TAT.SHIP_QTY" + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; // Decode 반복문 셋팅 string strDecode = string.Empty; // 시간 관련 셋팅 string strDate = cdvDate.Value.ToString("yyyyMMdd"); // 전일 TEST(T0100) START, END를 조회 하기 위해 DateTime getStartDate1 = Convert.ToDateTime(cdvDate.Value).AddDays(-1); DateTime getStartDate2 = Convert.ToDateTime(cdvDate.Value).AddDays(-2); string startDate = getStartDate2.ToString("yyyyMMdd") + "215959"; string endDate = getStartDate1.ToString("yyyyMMdd") + "220000"; // 쿼리 strSqlString.Append("SELECT MAT_CMF_8 AS SALES_CODE " + "\n"); // kpcs if (chkKpcs.Checked) { strSqlString.Append(" , ROUND(SUM(DECODE(OPER, 'T0000', QTY_TOTAL, 0))/1000) AS T0 " + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(OPER, 'START', FT_START_QTY, 0))/1000) AS FT_START_QTY " + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(OPER, 'END', FT_END_QTY, 0))/1000) AS FT_END_QTY " + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(OPER " + "\n"); strSqlString.Append(" , 'T0100', QTY_1, 'T0200', QTY_1, 'T0300', QTY_1, 'T0400', QTY_1 " + "\n"); strSqlString.Append(" , 'T0500', QTY_1, 'T0540', QTY_1, 'T0550', QTY_1, 'T0560', QTY_1 " + "\n"); strSqlString.Append(" , 'T0600', QTY_1, 'T0650', QTY_1, 'T0670', QTY_1, 'T0700', QTY_1 " + "\n"); strSqlString.Append(" , 'T0800', QTY_1, 'T0900', QTY_1, 'T1040', QTY_1, 'T1050', QTY_1 " + "\n"); strSqlString.Append(" , 'T1060', QTY_1, 0))/1000) AS T1 " + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(OPER " + "\n"); strSqlString.Append(" , 'T0100', HOLD_QTY, 'T0200', HOLD_QTY, 'T0300', HOLD_QTY, 'T0400', HOLD_QTY " + "\n"); strSqlString.Append(" , 'T0500', HOLD_QTY, 'T0540', HOLD_QTY, 'T0550', HOLD_QTY, 'T0560', HOLD_QTY " + "\n"); strSqlString.Append(" , 'T0600', HOLD_QTY, 'T0650', HOLD_QTY, 'T0670', HOLD_QTY, 'T0700', HOLD_QTY " + "\n"); strSqlString.Append(" , 'T0800', HOLD_QTY, 'T0900', HOLD_QTY, 'T1040', HOLD_QTY, 'T1050', HOLD_QTY " + "\n"); strSqlString.Append(" , 'T1060', HOLD_QTY, 0))/1000) AS T1_HOLD " + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(OPER " + "\n"); strSqlString.Append(" , 'T1080', QTY_TOTAL, 'T1100', QTY_TOTAL, 'T1200', QTY_TOTAL, 'T1300', QTY_TOTAL, 0))/1000) AS T2 " + "\n"); strSqlString.Append(" , ROUND(SUM(DECODE(OPER, 'TZ010', QTY_TOTAL, 0))/1000) AS TZ " + "\n"); } else { strSqlString.Append(" , SUM(DECODE(OPER, 'T0000', QTY_TOTAL, 0)) AS T0 " + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'START', FT_START_QTY, 0)) AS FT_START_QTY " + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'END', FT_END_QTY, 0)) AS FT_END_QTY " + "\n"); strSqlString.Append(" , SUM(DECODE(OPER " + "\n"); strSqlString.Append(" , 'T0100', QTY_1, 'T0200', QTY_1, 'T0300', QTY_1, 'T0400', QTY_1 " + "\n"); strSqlString.Append(" , 'T0500', QTY_1, 'T0540', QTY_1, 'T0550', QTY_1, 'T0560', QTY_1 " + "\n"); strSqlString.Append(" , 'T0600', QTY_1, 'T0650', QTY_1, 'T0670', QTY_1, 'T0700', QTY_1 " + "\n"); strSqlString.Append(" , 'T0800', QTY_1, 'T0900', QTY_1, 'T1040', QTY_1, 'T1050', QTY_1 " + "\n"); strSqlString.Append(" , 'T1060', QTY_1, 0)) AS T1 " + "\n"); strSqlString.Append(" , SUM(DECODE(OPER " + "\n"); strSqlString.Append(" , 'T0100', HOLD_QTY, 'T0200', HOLD_QTY, 'T0300', HOLD_QTY, 'T0400', HOLD_QTY " + "\n"); strSqlString.Append(" , 'T0500', HOLD_QTY, 'T0540', HOLD_QTY, 'T0550', HOLD_QTY, 'T0560', HOLD_QTY " + "\n"); strSqlString.Append(" , 'T0600', HOLD_QTY, 'T0650', HOLD_QTY, 'T0670', HOLD_QTY, 'T0700', HOLD_QTY " + "\n"); strSqlString.Append(" , 'T0800', HOLD_QTY, 'T0900', HOLD_QTY, 'T1040', HOLD_QTY, 'T1050', HOLD_QTY " + "\n"); strSqlString.Append(" , 'T1060', HOLD_QTY, 0)) AS T1_HOLD " + "\n"); strSqlString.Append(" , SUM(DECODE(OPER " + "\n"); strSqlString.Append(" , 'T1080', QTY_TOTAL, 'T1100', QTY_TOTAL, 'T1200', QTY_TOTAL, 'T1300', QTY_TOTAL, 0)) AS T2 " + "\n"); strSqlString.Append(" , SUM(DECODE(OPER, 'TZ010', QTY_TOTAL, 0)) AS TZ " + "\n"); } strSqlString.Append(" FROM (" + "\n"); if (DateTime.Now.ToString("yyyyMMdd") == cdvDate.SelectedValue()) { strSqlString.Append(" SELECT MAT.MAT_CMF_8 " + "\n"); strSqlString.Append(" , OPER " + "\n"); strSqlString.Append(" , SUM(DECODE(HOLD_FLAG,'Y', QTY_1, 0)) AS HOLD_QTY " + "\n"); strSqlString.Append(" , SUM(DECODE(HOLD_FLAG,' ', QTY_1, 0)) AS QTY_1 " + "\n"); strSqlString.Append(" , SUM(QTY_1) AS QTY_TOTAL " + "\n"); strSqlString.Append(" , 0 AS FT_START_QTY " + "\n"); strSqlString.Append(" , 0 as FT_END_QTY " + "\n"); strSqlString.Append(" FROM RWIPLOTSTS LOT " + "\n"); strSqlString.Append(" , MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND LOT.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LOT.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND LOT.OWNER_CODE = 'PROD' " + "\n"); strSqlString.Append(" AND LOT.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LOT_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LOT.OPER IN ('T0000', 'T0100', 'T0200', 'T0300', 'T0400', 'T0500', 'T0540', 'T0550', 'T0560' " + "\n"); strSqlString.Append(" , 'T0600', 'T0650', 'T0670', 'T0700', 'T0800', 'T0900', 'T1040', 'T1050', 'T1060' " + "\n"); strSqlString.Append(" , 'T1080', 'T1100', 'T1200', 'T1300', 'TZ010') " + "\n"); strSqlString.Append(" AND LOT_CMF_2 = 'GC' " + "\n"); strSqlString.Append(" AND MAT.FACTORY = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" GROUP BY MAT.MAT_CMF_8, OPER " + "\n"); } else { strSqlString.Append(" SELECT MAT.MAT_CMF_8 " + "\n"); strSqlString.Append(" , OPER " + "\n"); strSqlString.Append(" , SUM(DECODE(HOLD_FLAG,'Y', QTY_1, 0)) AS HOLD_QTY " + "\n"); strSqlString.Append(" , SUM(DECODE(HOLD_FLAG,' ', QTY_1, 0)) AS QTY_1 " + "\n"); strSqlString.Append(" , SUM(QTY_1) AS QTY_TOTAL " + "\n"); strSqlString.Append(" , 0 AS FT_START_QTY " + "\n"); strSqlString.Append(" , 0 as FT_END_QTY " + "\n"); strSqlString.Append(" FROM RWIPLOTSTS_BOH LOT " + "\n"); strSqlString.Append(" , MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND LOT.CUTOFF_DT = '" + strDate + "22'" + "\n"); strSqlString.Append(" AND LOT.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LOT.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND LOT.OWNER_CODE = 'PROD' " + "\n"); strSqlString.Append(" AND LOT.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LOT_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LOT.OPER IN ('T0000', 'T0100', 'T0200', 'T0300', 'T0400', 'T0500', 'T0540', 'T0550', 'T0560' " + "\n"); strSqlString.Append(" , 'T0600', 'T0650', 'T0670', 'T0700', 'T0800', 'T0900', 'T1040', 'T1050', 'T1060' " + "\n"); strSqlString.Append(" , 'T1080', 'T1100', 'T1200', 'T1300', 'TZ010') " + "\n"); strSqlString.Append(" AND LOT_CMF_2 = 'GC' " + "\n"); strSqlString.Append(" AND MAT.FACTORY = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" GROUP BY MAT.MAT_CMF_8, OPER " + "\n"); } strSqlString.Append(" UNION ALL " + "\n"); strSqlString.Append(" SELECT MAT_CMF_8, 'START' AS OPER, 0 AS HOLD_QTY, 0 AS QTY_1, 0 AS QTY_TOTAL " + "\n"); strSqlString.Append(" , SUM(QTY_1) as FT_START_QTY " + "\n"); strSqlString.Append(" , 0 as FT_END_QTY " + "\n"); strSqlString.Append(" FROM RWIPLOTHIS LOT " + "\n"); strSqlString.Append(" , MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND LOT.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LOT.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND LOT.OWNER_CODE = 'PROD' " + "\n"); strSqlString.Append(" AND LOT.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LOT_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LOT_CMF_2 = 'GC' " + "\n"); strSqlString.Append(" AND MAT.FACTORY = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + startDate + "' AND '" + endDate + "' " + "\n"); strSqlString.Append(" AND TRAN_CODE = 'START' " + "\n"); strSqlString.Append(" AND OPER = 'T0100' " + "\n"); strSqlString.Append(" GROUP BY MAT.MAT_CMF_8 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); strSqlString.Append(" SELECT MAT_CMF_8, 'END' AS OPER, 0 AS HOLD_QTY, 0 AS QTY_1, 0 AS QTY_TOTAL, 0 AS FT_START_QTY " + "\n"); strSqlString.Append(" , SUM(QTY_1) as FT_END_QTY " + "\n"); strSqlString.Append(" FROM RWIPLOTHIS LOT " + "\n"); strSqlString.Append(" , MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND LOT.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LOT.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND LOT.OWNER_CODE = 'PROD' " + "\n"); strSqlString.Append(" AND LOT.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LOT_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LOT_CMF_2 = 'GC' " + "\n"); strSqlString.Append(" AND MAT.FACTORY = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + startDate + "' AND '" + endDate + "' " + "\n"); strSqlString.Append(" AND TRAN_CODE = 'END' " + "\n"); strSqlString.Append(" AND OLD_OPER = 'T0100' " + "\n"); strSqlString.Append(" GROUP BY MAT.MAT_CMF_8 " + "\n"); strSqlString.Append(" ORDER BY MAT_CMF_8 " + "\n"); strSqlString.Append(" ) " + "\n"); strSqlString.Append("GROUP BY MAT_CMF_8 " + "\n"); strSqlString.Append("ORDER BY MAT_CMF_8 " + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1; string QueryCond2; string QueryCond3; string sKpcsValue; // Kpcs 구분에 의한 나누기 분모 값 string[] selectDate = new string[cdvFromToDate.SubtractBetweenFromToDate + 1]; selectDate = cdvFromToDate.getSelectDate(); udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; // kpcs 선택에 의한 분모 값 저장 한다. if (ckbKpcs.Checked == true) { sKpcsValue = "1000"; } else { sKpcsValue = "1"; } strSqlString.Append("SELECT (SELECT DATA_1 FROM MGCMTBLDAT WHERE TABLE_NAME = 'H_CUSTOMER' AND KEY_1 = SUBSTR(MAT_ID,1,2) AND ROWNUM=1) AS CUSTOMER" + "\n"); strSqlString.Append(" , MAT_ID" + "\n"); strSqlString.Append(" , (SELECT OPER_DESC FROM MWIPOPRDEF WHERE FACTORY = '" + cdvFactory.Text + "' AND OPER = DAT.OPER) AS OPER_DESC " + "\n"); strSqlString.Append(" , DAT.OPER" + "\n"); strSqlString.Append(" , GUBUN" + "\n"); for (int i = 0; i < cdvFromToDate.SubtractBetweenFromToDate + 1; i++) { strSqlString.AppendFormat(" , SUM(DECODE(PLAN_DATE, '{0}', QTY, 0)) AS D{1}" + "\n", selectDate[i].ToString(), i.ToString()); } strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT PLAN_DATE" + "\n"); strSqlString.Append(" , MAT_ID" + "\n"); strSqlString.Append(" , OPER" + "\n"); strSqlString.Append(" , DECODE(SEQ, 1, 'PLAN', 2, 'ACT', 3, 'BAL') AS GUBUN" + "\n"); strSqlString.Append(" , DECODE(SEQ, 1, PLN_QTY, 2, END_QTY, 3, BAL_QTY) AS QTY " + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT A.PLAN_DATE" + "\n"); strSqlString.Append(" , A.MAT_ID" + "\n"); strSqlString.Append(" , A.OPER" + "\n"); strSqlString.Append(" , A.QTY_1 AS PLN_QTY" + "\n"); strSqlString.Append(" , NVL(C.END_QTY,0) AS END_QTY " + "\n"); strSqlString.Append(" , SUM(NVL(C.END_QTY,0) - A.QTY_1) OVER(PARTITION BY A.MAT_ID, A.OPER ORDER BY A.PLAN_DATE) AS BAL_QTY" + "\n"); strSqlString.Append(" FROM CPLNDAYOPR@RPTTOMES A" + "\n"); strSqlString.Append(" , MWIPMATDEF B" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT A.WORK_DATE" + "\n"); strSqlString.Append(" , A.MAT_ID" + "\n"); strSqlString.Append(" , A.OPER" + "\n"); strSqlString.Append(" , SUM(CASE WHEN A.OPER = 'AZ010' THEN DECODE(B.MAT_GRP_3, 'COB', 0, 'BGN', 0, (S1_MOVE_QTY_1+S2_MOVE_QTY_1+S3_MOVE_QTY_1)) " + "\n"); strSqlString.Append(" ELSE (S1_END_QTY_1+S2_END_QTY_1+S3_END_QTY_1)" + "\n"); strSqlString.Append(" END) AS END_QTY" + "\n"); strSqlString.Append(" FROM RSUMWIPMOV A" + "\n"); strSqlString.Append(" , MWIPMATDEF B" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID" + "\n"); strSqlString.Append(" AND A.FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND A.WORK_DATE BETWEEN '" + cdvFromToDate.HmFromDay + "' AND '" + cdvFromToDate.HmToDay + "'" + "\n"); strSqlString.Append(" AND A.LOT_TYPE = 'W'" + "\n"); strSqlString.Append(" AND B.DELETE_FLAG = ' '" + "\n"); strSqlString.Append(" AND B.MAT_TYPE = 'FG'" + "\n"); strSqlString.Append(" AND A.FACTORY NOT IN ('RETURN') " + "\n"); if (cdvLotType.Text != "ALL") { strSqlString.Append(" AND A.CM_KEY_3 LIKE '" + cdvLotType.Text + "'" + "\n"); } strSqlString.Append(" GROUP BY A.WORK_DATE, A.MAT_ID, A.OPER" + "\n"); strSqlString.Append(" ) C" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID" + "\n"); strSqlString.Append(" AND A.PLAN_DATE = C.WORK_DATE(+)" + "\n"); strSqlString.Append(" AND A.MAT_ID = C.MAT_ID(+)" + "\n"); strSqlString.Append(" AND A.OPER = C.OPER(+)" + "\n"); strSqlString.Append(" AND A.FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND A.PLAN_DATE BETWEEN '" + cdvFromToDate.HmFromDay + "' AND '" + cdvFromToDate.HmToDay + "'" + "\n"); strSqlString.Append(" AND B.DELETE_FLAG = ' '" + "\n"); if (txtProduct.Text.Trim() != "%" && txtProduct.Text.Trim() != "") { strSqlString.Append(" AND A.MAT_ID LIKE '" + txtProduct.Text + "'" + "\n"); } #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND B.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , (SELECT LEVEL AS SEQ FROM DUAL CONNECT BY LEVEL <= 3) B" + "\n"); strSqlString.Append(" ) DAT" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); if (cdvOper.Text != "ALL" && cdvOper.Text != "") { strSqlString.AppendFormat(" AND OPER {0} " + "\n", cdvOper.SelectedValueToQueryString); } if (cdvGubun.Text != "ALL" && cdvGubun.Text != "") { strSqlString.AppendFormat(" AND GUBUN {0} " + "\n", cdvGubun.SelectedValueToQueryString); } strSqlString.Append(" GROUP BY MAT_ID, OPER, GUBUN" + "\n"); strSqlString.Append(" ORDER BY MAT_ID, DAT.OPER, DECODE(GUBUN, 'PLAN', 1, 'ACT', 2, 3)" + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string strDate = string.Empty; int Between = cdvFromTo.SubtractBetweenFromToDate + 1; string[] selectDate1 = new string[cdvFromTo.SubtractBetweenFromToDate + 1]; selectDate1 = cdvFromTo.getSelectDate(); string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; string strFromDate = cdvFromTo.ExactFromDate; string strToDate = cdvFromTo.ExactToDate; string strFromdy = cdvFromTo.HmFromDay; strSqlString.AppendFormat("SELECT " + QueryCond1 + " \n"); strSqlString.AppendFormat(" " + cdvFromTo.getRepeatQuery("NVL(SUM(CNT", "),0) AS", "CNT") + "\n"); strSqlString.AppendFormat(" FROM (" + "\n"); strSqlString.AppendFormat(" SELECT " + QueryCond2 + "\n"); strSqlString.AppendFormat(" " + cdvFromTo.getDecodeQuery("DECODE(WORK_DAY", "COUNT(*)) AS", "CNT")); strSqlString.AppendFormat(" FROM (" + "\n"); strSqlString.AppendFormat(" SELECT " + QueryCond3 + "\n"); strSqlString.AppendFormat(" ,GET_WORK_DATE(DOWN_TRAN_TIME,'D') AS WORK_DAY" + "\n"); strSqlString.AppendFormat(" FROM CRASRESDWH HIS," + "\n"); strSqlString.AppendFormat(" MRASRESDEF RES" + "\n"); strSqlString.AppendFormat(" WHERE 1=1" + "\n"); strSqlString.AppendFormat(" AND RES.FACTORY = HIS.FACTORY" + "\n"); strSqlString.AppendFormat(" AND RES.RES_ID = HIS.RES_ID" + "\n"); strSqlString.AppendFormat(" AND RES.FACTORY = '" + cdvFactory.Text + "'" + " \n"); strSqlString.AppendFormat(" AND HIS.DOWN_NEW_STS_1 LIKE '" + cdvDownCode.Text + "%'" + "\n"); strSqlString.AppendFormat(" AND HIS.DOWN_NEW_STS_1 " + cdvDownCodeDetail.SelectedValueToQueryString + "\n"); strSqlString.AppendFormat(" AND HIS.DOWN_TRAN_TIME BETWEEN '" + cdvFromTo.getFromTranTime() + "' AND '" + cdvFromTo.getToTranTime() + "'" + "\n"); if (udcRASCondition1.Text != "ALL" && udcRASCondition1.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_1 {0} " + "\n", udcRASCondition1.SelectedValueToQueryString); } if (udcRASCondition2.Text != "ALL" && udcRASCondition2.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_2 {0} " + "\n", udcRASCondition2.SelectedValueToQueryString); } if (udcRASCondition3.Text != "ALL" && udcRASCondition3.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_3 {0} " + "\n", udcRASCondition3.SelectedValueToQueryString); } if (udcRASCondition4.Text != "ALL" && udcRASCondition4.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_5 {0} " + "\n", udcRASCondition4.SelectedValueToQueryString); } if (udcRASCondition5.Text != "ALL" && udcRASCondition5.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_6 {0} " + "\n", udcRASCondition5.SelectedValueToQueryString); } if (udcRASCondition6.Text != "ALL" && udcRASCondition6.Text != "") { strSqlString.AppendFormat(" AND RES.RES_ID {0} " + "\n", udcRASCondition6.SelectedValueToQueryString); } strSqlString.AppendFormat(" )" + "\n"); strSqlString.AppendFormat(" GROUP BY " + QueryCond1 + ",WORK_DAY" + "\n"); strSqlString.AppendFormat(" )" + "\n"); strSqlString.AppendFormat("GROUP BY " + QueryCond1 + "\n"); strSqlString.AppendFormat("ORDER BY " + QueryCond1 + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string Start_Tran_Time = null; string End_Tran_Time = null; string Start_Day = null; string End_Day = null; Start_Tran_Time = cdvFromToDate.ExactFromDate; End_Tran_Time = cdvFromToDate.ExactToDate; Start_Day = Convert.ToDateTime(Start_Tran_Time.Substring(0, 4) + "-" + Start_Tran_Time.Substring(4, 2) + "-" + Start_Tran_Time.Substring(6, 2)).AddDays(1).ToString("yyyyMMdd") + "22"; End_Day = End_Tran_Time.Substring(0, 8) + "22"; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; strSqlString.Append("SELECT NVL(PO.PO_NO,'N/A') AS PO_NO " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , A.RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , DA_LOSS " + "\n"); strSqlString.Append(" , BEG_ASSY_START " + "\n"); strSqlString.Append(" , BEG_ASSY_END " + "\n"); strSqlString.Append(" , ASSY_IN " + "\n"); strSqlString.Append(" , ASSY_OUT " + "\n"); strSqlString.Append(" , ASSY_LOSS " + "\n"); strSqlString.Append(" , BEG_TEST_START " + "\n"); strSqlString.Append(" , BEG_TEST_END " + "\n"); strSqlString.Append(" , TEST_OUT+TEST_LOSS AS TEST_IN " + "\n"); strSqlString.Append(" , TEST_OUT " + "\n"); strSqlString.Append(" , TEST_LOSS " + "\n"); strSqlString.Append(" , CV " + "\n"); strSqlString.Append(" , TNR_LOSS " + "\n"); strSqlString.Append(" , FGS_IN " + "\n"); strSqlString.Append(" FROM " + "\n"); strSqlString.Append(" ( " + "\n"); strSqlString.Append(" SELECT RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , SUM(DA_LOSS) AS DA_LOSS " + "\n"); strSqlString.Append(" , SUM(BEG_ASSY_START) AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , SUM(BEG_ASSY_END) AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , SUM(ASSY_IN) AS ASSY_IN " + "\n"); strSqlString.Append(" , SUM(ASSY_OUT) AS ASSY_OUT " + "\n"); strSqlString.Append(" , SUM(ASSY_LOSS) AS ASSY_LOSS " + "\n"); strSqlString.Append(" , SUM(BEG_TEST_START) AS BEG_TEST_START " + "\n"); strSqlString.Append(" , SUM(BEG_TEST_END) AS BEG_TEST_END " + "\n"); strSqlString.Append(" , SUM(TEST_IN) AS TEST_IN " + "\n"); strSqlString.Append(" , SUM(TEST_OUT) AS TEST_OUT " + "\n"); strSqlString.Append(" , SUM(TEST_LOSS) AS TEST_LOSS " + "\n"); strSqlString.Append(" , SUM(CV) AS CV " + "\n"); strSqlString.Append(" , SUM(TNR_LOSS) AS TNR_LOSS " + "\n"); strSqlString.Append(" , SUM(FGS_IN) AS FGS_IN " + "\n"); strSqlString.Append(" FROM ( " + "\n"); // D/A LOSS strSqlString.Append(" SELECT LOT.LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , SUM(LOSS_QTY) AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTLSM LSM, RWIPLOTSTS LOT, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE LSM.FACTORY ='" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND LSM.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" AND LSM.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LSM.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND LSM.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LSM.OPER IN ('A0400','A0401','A0402','A0403') " + "\n"); strSqlString.Append(" AND LSM.HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LSM.TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" AND LSM.LOT_ID = LOT.LOT_ID " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT.LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // C/V LOSS strSqlString.Append(" SELECT LOT.LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , SUM(LOSS_QTY) AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTLSM LSM, RWIPLOTSTS LOT, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE LSM.FACTORY ='" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND LSM.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LSM.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND LSM.OPER NOT IN ('T0100','T0400','T1200') " + "\n"); strSqlString.Append(" AND LSM.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" AND LSM.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LSM.HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LSM.TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" AND LSM.LOT_ID = LOT.LOT_ID " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT.LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // ASSY IN strSqlString.Append(" SELECT LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , SUM (QTY_1) AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTHIS HIS, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE HIS.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND HIS.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" AND HIS.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND HIS.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND HIS.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND OPER IN ('A0000', 'A000N') " + "\n"); strSqlString.Append(" AND TRAN_CODE = 'CREATE' " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // ASSY OUT strSqlString.Append(" SELECT LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , SUM(SHIP_QTY_1) AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM VWIPSHPLOT SHP, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE FROM_FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND SHP.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND SHP.FROM_FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND OWNER_CODE = 'PROD' " + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W' " + "\n"); strSqlString.Append(" AND FROM_OPER IN ('AZ010') " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" AND SHP.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // ASSY LOSS strSqlString.Append(" SELECT LOT.LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , SUM(LOSS_QTY) AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTLSM LSM, RWIPLOTSTS LOT, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE LSM.FACTORY ='" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND LSM.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" AND LSM.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LSM.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND LSM.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LSM.HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LSM.TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" AND LSM.LOT_ID = LOT.LOT_ID " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT.LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // TEST IN strSqlString.Append(" SELECT LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , SUM (QTY_1) AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTHIS HIS, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE HIS.FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND HIS.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" AND HIS.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND HIS.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND HIS.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND OPER IN ('T0100', 'T0400') " + "\n"); strSqlString.Append(" AND TRAN_CODE = 'START' " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // TEST OUT strSqlString.Append(" SELECT LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , SUM (QTY_1) AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTHIS HIS, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE HIS.FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND HIS.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" AND HIS.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND HIS.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND HIS.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND OLD_OPER IN ('T0100', 'T0400') " + "\n"); strSqlString.Append(" AND TRAN_CODE = 'END' " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // TEST LOSS strSqlString.Append(" SELECT LOT.LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , SUM(LOSS_QTY) AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTLSM LSM, RWIPLOTSTS LOT, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE LSM.FACTORY ='" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND LSM.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" AND LSM.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LSM.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND LSM.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LSM.OPER IN ('T0100',',T0400') " + "\n"); strSqlString.Append(" AND LSM.HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LSM.TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" AND LSM.LOT_ID = LOT.LOT_ID " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT.LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // TNR LOSS strSqlString.Append(" SELECT LOT.LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , SUM(LOSS_QTY) AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTLSM LSM, RWIPLOTSTS LOT, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE LSM.FACTORY ='" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND LSM.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" AND LSM.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LSM.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND LSM.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LSM.OPER = 'T1200' " + "\n"); strSqlString.Append(" AND LSM.HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LSM.TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" AND LSM.LOT_ID = LOT.LOT_ID " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT.LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // FGS IN strSqlString.Append(" SELECT LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , SUM (QTY_1) AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTHIS HIS, MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE HIS.FACTORY = 'FGS' " + "\n"); strSqlString.Append(" AND HIS.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" AND HIS.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND HIS.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND HIS.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND OPER IN ('F0000') " + "\n"); strSqlString.Append(" AND TRAN_CODE = 'RECEIVE' " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // BEG_ASSY_START strSqlString.Append(" SELECT LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , SUM (QTY_1) AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTSTS_BOH A, MWIPMATDEF B " + "\n"); strSqlString.Append(" WHERE A.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND B.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND A.OWNER_CODE = 'PROD' " + "\n"); strSqlString.Append(" AND A.CUTOFF_DT = '" + Start_Day + "'" + "\n"); strSqlString.Append(" AND A.OPER BETWEEN 'A0000' AND 'AZ010' " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY " + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID " + "\n"); strSqlString.Append(" AND A.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND A.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // BEG_ASSY_END strSqlString.Append(" SELECT LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , SUM (QTY_1) AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTSTS_BOH A, MWIPMATDEF B " + "\n"); strSqlString.Append(" WHERE A.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND B.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND A.OWNER_CODE = 'PROD' " + "\n"); strSqlString.Append(" AND A.CUTOFF_DT = '" + End_Day + "'" + "\n"); strSqlString.Append(" AND A.OPER BETWEEN 'A0000' AND 'AZ010' " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY " + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID " + "\n"); strSqlString.Append(" AND A.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND A.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // BEG_TEST_START strSqlString.Append(" SELECT LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , SUM (QTY_1) AS BEG_TEST_START " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTSTS_BOH A, MWIPMATDEF B " + "\n"); strSqlString.Append(" WHERE A.FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND B.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND A.OWNER_CODE = 'PROD' " + "\n"); strSqlString.Append(" AND A.CUTOFF_DT = '" + Start_Day + "'" + "\n"); strSqlString.Append(" AND A.OPER BETWEEN 'T0000' AND 'TZ010' " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY " + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID " + "\n"); strSqlString.Append(" AND A.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND A.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" UNION ALL " + "\n"); // BEG_TEST_END strSqlString.Append(" SELECT LOT_CMF_4 AS RUN_ID " + "\n"); strSqlString.Append(" , MAT_CMF_7 " + "\n"); strSqlString.Append(" , MAT_CMF_10 " + "\n"); strSqlString.Append(" , 0 AS DA_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_START " + "\n"); strSqlString.Append(" , 0 AS BEG_ASSY_END " + "\n"); strSqlString.Append(" , 0 AS ASSY_IN " + "\n"); strSqlString.Append(" , 0 AS ASSY_OUT " + "\n"); strSqlString.Append(" , 0 AS ASSY_LOSS " + "\n"); strSqlString.Append(" , 0 AS BEG_TEST_START " + "\n"); strSqlString.Append(" , SUM (QTY_1) AS BEG_TEST_END " + "\n"); strSqlString.Append(" , 0 AS TEST_IN " + "\n"); strSqlString.Append(" , 0 AS TEST_OUT " + "\n"); strSqlString.Append(" , 0 AS TEST_LOSS " + "\n"); strSqlString.Append(" , 0 AS CV " + "\n"); strSqlString.Append(" , 0 AS TNR_LOSS " + "\n"); strSqlString.Append(" , 0 AS FGS_IN " + "\n"); strSqlString.Append(" FROM RWIPLOTSTS_BOH A, MWIPMATDEF B " + "\n"); strSqlString.Append(" WHERE A.FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND B.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND A.OWNER_CODE = 'PROD' " + "\n"); strSqlString.Append(" AND A.CUTOFF_DT = '" + End_Day + "'" + "\n"); strSqlString.Append(" AND A.OPER BETWEEN 'T0000' AND 'TZ010' " + "\n"); strSqlString.Append(" AND A.FACTORY = B.FACTORY " + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID " + "\n"); strSqlString.Append(" AND A.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND A.MAT_ID LIKE 'IM%' " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, LOT_CMF_4, MAT_CMF_10 " + "\n"); strSqlString.Append(" ) " + "\n"); strSqlString.Append(" GROUP BY MAT_CMF_7, RUN_ID, MAT_CMF_10 " + "\n"); strSqlString.Append(" ) A, CWIPCUSORD@RPTTOMES PO " + "\n"); strSqlString.Append(" WHERE A.RUN_ID=PO.RUN_ID(+) " + "\n"); strSqlString.Append(" ORDER BY PO_NO, RUN_ID " + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; string strSelect = string.Empty; string strDecode = string.Empty; string strDate = cdvDate.Value.ToString("yyyyMMdd"); string strPrevDate; if (DateTime.Now.ToString("yyyyMMdd").Equals(strDate)) // 오늘 날짜 { strDate = DateTime.Now.ToString("yyyyMMddHHmmss"); strPrevDate = DateTime.Now.AddDays(-1).ToString("yyyyMMdd") + "220000"; strSelect += cdvStep.getRepeatQuery("SUM(WIP", ") AS ", "WIP").Replace(", SUM", " , SUM"); strSelect += cdvStep.getRepeatQuery("SUM(CNT", ") AS ", "CNT").Replace(", SUM", " , SUM"); strSelect += cdvStep.getRepeatQuery("TRUNC(AVG(CAPA", ")) AS ", "CAPA").Replace(", TRUNC", " , TRUNC"); strDecode += cdvStep.getDecodeQuery("DECODE(RES.OPER_GRP_1 ", " RES.WIP, 0)", "WIP").Replace(", DECODE", " , DECODE"); strDecode += cdvStep.getDecodeQuery("DECODE(RES.OPER_GRP_1 ", " RES.EQP_CNT, 0)", "CNT").Replace(", DECODE", " , DECODE"); strDecode += cdvStep.getDecodeQuery("DECODE(RES.OPER_GRP_1 ", " TRUNC(NVL(NVL(UPH.UPEH,0) * 22.5 * 0.7 * RES.EQP_CNT, 0)), 0)", "CAPA").Replace(", DECODE", " , DECODE"); strSqlString.AppendFormat("SELECT {0} " + "\n", QueryCond1); strSqlString.Append(" , ' ' AS CAPA " + "\n"); strSqlString.Append(" , ' ' AS Gubun " + "\n"); strSqlString.Append(strSelect); strSqlString.Append("FROM ( " + "\n"); strSqlString.Append(" SELECT RES.FACTORY " + "\n"); strSqlString.Append(" , RES.MAT_ID " + "\n"); strSqlString.Append(strDecode); strSqlString.Append(" FROM " + "\n"); strSqlString.Append(" ( SELECT LTH.FACTORY, LTH.MAT_ID, OPR.OPER_GRP_1, OPR.OPER, DEF.RES_GRP_6 RES_MODEL, DEF.RES_GRP_7 UPEH_GRP, COUNT(*) EQP_CNT, SUM(LTH.QTY_1) WIP " + "\n"); strSqlString.Append(" FROM MRASRESLTH LTH " + "\n"); strSqlString.Append(" , MRASRESDEF DEF " + "\n"); strSqlString.Append(" , MWIPOPRDEF OPR " + "\n"); strSqlString.Append(" WHERE 1 = 1 " + "\n"); strSqlString.Append(" AND LTH.FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); if (cdvStep.Text != "ALL") { strSqlString.Append(" AND OPR.OPER_GRP_1 " + cdvStep.SelectedValueToQueryString + "\n"); } if (txtSearchProduct.Text.Trim() != "%" && txtSearchProduct.Text.Trim() != "") { strSqlString.Append(" AND LTH.MAT_ID LIKE '" + txtSearchProduct.Text + "'" + "\n"); } if (cdvFactory.Text == GlobalVariable.gsAssyDefaultFactory) { strSqlString.Append(" AND LTH.OPER NOT IN ('00001','00002') " + "\n"); } strSqlString.Append(" AND LTH.RES_HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LTH.TRAN_TIME BETWEEN '" + strPrevDate + "' AND '" + strDate + "' " + "\n"); strSqlString.Append(" AND LTH.FACTORY = DEF.FACTORY " + "\n"); strSqlString.Append(" AND LTH.FACTORY = OPR.FACTORY " + "\n"); strSqlString.Append(" AND LTH.OPER = OPR.OPER " + "\n"); strSqlString.Append(" AND LTH.RES_ID = DEF.RES_ID " + "\n"); strSqlString.Append(" GROUP BY LTH.FACTORY, LTH.MAT_ID, OPR.OPER_GRP_1, OPR.OPER, DEF.RES_GRP_6, DEF.RES_GRP_7 " + "\n"); strSqlString.Append(" ) RES " + "\n"); strSqlString.Append(" , CRASUPHDEF UPH " + "\n"); strSqlString.Append(" WHERE 1 = 1 " + "\n"); strSqlString.Append(" AND RES.FACTORY = UPH.FACTORY(+) " + "\n"); strSqlString.Append(" AND RES.OPER = UPH.OPER(+) " + "\n"); strSqlString.Append(" AND RES.RES_MODEL = UPH.RES_MODEL(+) " + "\n"); strSqlString.Append(" AND RES.UPEH_GRP = UPH.UPEH_GRP(+) " + "\n"); strSqlString.Append(" AND RES.MAT_ID = UPH.MAT_ID(+) " + "\n"); strSqlString.Append(" ) RES " + "\n"); strSqlString.Append(" , MWIPMATDEF MAT " + "\n"); strSqlString.Append(" , MGCMTBLDAT GCM " + "\n"); strSqlString.Append("WHERE 1 = 1 " + "\n"); strSqlString.Append(" AND GCM.TABLE_NAME = 'H_CUSTOMER' " + "\n"); strSqlString.Append(" AND RES.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND MAT.FACTORY = GCM.FACTORY " + "\n"); strSqlString.Append(" AND RES.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND MAT.MAT_GRP_1 = GCM.KEY_1 " + "\n"); #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.AppendFormat("GROUP BY {0} " + "\n", QueryCond3); strSqlString.AppendFormat("ORDER BY {0} " + "\n", QueryCond3); } else // 과거 날짜 { strSelect += cdvStep.getRepeatQuery("SUM(WIP", ") AS ", "WIP").Replace(", SUM", " , SUM"); strSelect += cdvStep.getRepeatQuery("SUM(CNT", ") AS ", "CNT").Replace(", SUM", " , SUM"); strSelect += cdvStep.getRepeatQuery("TRUNC(AVG(CAPA", ")) AS ", "CAPA").Replace(", TRUNC", " , TRUNC"); strDecode += cdvStep.getDecodeQuery("DECODE(OPR.OPER_GRP_1 ", " CAP.WIP, 0)", "WIP").Replace(", SUM", " , SUM"); strDecode += cdvStep.getDecodeQuery("DECODE(OPR.OPER_GRP_1 ", " CAP.EQP_CNT, 0)", "CNT").Replace(", SUM", " , SUM"); strDecode += cdvStep.getDecodeQuery("DECODE(OPR.OPER_GRP_1 ", " CAP.CAPA, 0)", "CAPA").Replace(", SUM", " , SUM"); strSqlString.AppendFormat("SELECT {0} " + "\n", QueryCond1); strSqlString.Append(" , ' ' AS CAPA " + "\n"); strSqlString.Append(" , ' ' AS Gubun " + "\n"); strSqlString.AppendFormat("{0} " + "\n", strSelect); strSqlString.Append("FROM ( " + "\n"); strSqlString.Append(" SELECT CAP.FACTORY " + "\n"); strSqlString.Append(" , CAP.MAT_ID " + "\n"); strSqlString.AppendFormat("{0} " + "\n", strDecode); strSqlString.Append(" FROM RSUMRESCAP CAP, " + "\n"); strSqlString.Append(" MWIPOPRDEF OPR " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND CAP.FACTORY = OPR.FACTORY " + "\n"); strSqlString.Append(" AND CAP.OPER = OPR.OPER " + "\n"); strSqlString.Append(" AND CAP.CUTOFF_DT = '" + strDate + "' " + "\n"); strSqlString.Append(" AND CAP.FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); if (cdvStep.Text != "ALL") { strSqlString.Append(" AND OPR.OPER_GRP_1 " + cdvStep.SelectedValueToQueryString + "\n"); } if (txtSearchProduct.Text.Trim() != "%" && txtSearchProduct.Text.Trim() != "") { strSqlString.Append(" AND CAP.MAT_ID LIKE '" + txtSearchProduct.Text + "'" + "\n"); } if (cdvFactory.Text == GlobalVariable.gsAssyDefaultFactory) { strSqlString.Append(" AND CAP.OPER NOT IN ('00001','00002') " + "\n"); } strSqlString.Append(" ) CAP " + "\n"); strSqlString.Append(" , MWIPMATDEF MAT " + "\n"); strSqlString.Append(" , MGCMTBLDAT GCM " + "\n"); strSqlString.Append("WHERE 1=1 " + "\n"); strSqlString.Append(" AND CAP.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND MAT.FACTORY = GCM.FACTORY " + "\n"); strSqlString.Append(" AND CAP.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND GCM.TABLE_NAME = 'H_CUSTOMER' " + "\n"); strSqlString.Append(" AND MAT.MAT_GRP_1 = GCM.KEY_1 " + "\n"); #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.AppendFormat("GROUP BY {0} " + "\n", QueryCond3); strSqlString.AppendFormat("ORDER BY {0} " + "\n", QueryCond3); } System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string Start_Tran_Time = null; string End_Tran_Time = null; Start_Tran_Time = cdvFromToDate.ExactFromDate; End_Tran_Time = cdvFromToDate.ExactToDate; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; strSqlString.Append("SELECT MAT.MAT_CMF_7 " + "\n"); strSqlString.Append(" , SHP.LOT_CMF_4 " + "\n"); strSqlString.Append(" , MAT.MAT_CMF_9 " + "\n"); strSqlString.Append(" , '' AS ASSY_IN" + "\n"); strSqlString.Append(" , '' AS ASSY_OUT" + "\n"); strSqlString.Append(" , ( SELECT SUM(LSM.LOSS_QTY)" + "\n"); strSqlString.Append(" FROM RWIPLOTLSM LSM," + "\n"); strSqlString.Append(" RWIPLOTSTS LOT" + "\n"); strSqlString.Append(" WHERE LSM.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND LSM.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LSM.HIST_DEL_FLAG = ' '" + "\n"); strSqlString.Append(" AND LSM.LOT_ID=LOT.LOT_ID" + "\n"); strSqlString.Append(" AND LOT.LOT_CMF_4 = SHP.LOT_CMF_4" + "\n"); strSqlString.Append(" ) AS ASSY_LOSS" + "\n"); strSqlString.Append(" , '' AS TEST_IN" + "\n"); strSqlString.Append(" , '' AS TEST_OUT" + "\n"); strSqlString.Append(" , ( SELECT SUM(LSM.LOSS_QTY)" + "\n"); strSqlString.Append(" FROM RWIPLOTLSM LSM," + "\n"); strSqlString.Append(" RWIPLOTSTS LOT" + "\n"); strSqlString.Append(" WHERE LSM.FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND LSM.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LSM.OPER IN ('T0100')" + "\n"); strSqlString.Append(" AND LSM.HIST_DEL_FLAG = ' '" + "\n"); strSqlString.Append(" AND LSM.LOT_ID=LOT.LOT_ID" + "\n"); strSqlString.Append(" AND LOT.LOT_CMF_4 = SHP.LOT_CMF_4" + "\n"); strSqlString.Append(" ) AS TEST_LOSS" + "\n"); strSqlString.Append(" , ( SELECT SUM(LSM.LOSS_QTY)" + "\n"); strSqlString.Append(" FROM RWIPLOTLSM LSM," + "\n"); strSqlString.Append(" RWIPLOTSTS LOT" + "\n"); strSqlString.Append(" WHERE LSM.FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); strSqlString.Append(" AND LSM.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LSM.OPER IN ('T0200', 'T0300', 'T0500', 'T0540', 'T0550', 'T0560', 'T0600', 'T0650', 'T0670', 'T0700', 'T0800', 'T0900', 'T1040', 'T1080', 'T1100', 'T1200', 'T1300', 'TZ010')" + "\n"); strSqlString.Append(" AND LSM.HIST_DEL_FLAG = ' '" + "\n"); strSqlString.Append(" AND LSM.LOT_ID=LOT.LOT_ID" + "\n"); strSqlString.Append(" AND LOT.LOT_CMF_4 = SHP.LOT_CMF_4" + "\n"); strSqlString.Append(" ) AS TR_LOSS" + "\n"); strSqlString.Append(" , SHP.SHIP_QTY" + "\n"); strSqlString.Append("FROM (" + "\n"); strSqlString.Append(" SELECT LOT_CMF_4, SUM(QTY) AS SHIP_QTY, MAT_ID " + "\n"); strSqlString.Append(" FROM (" + "\n"); // 최초 Merge 때의 수량 가져오기(더해진 Lot 이력) strSqlString.Append(" SELECT LOT_ID, OLD_QTY_1 AS QTY, LOT_CMF_4, MAT_ID" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT ROW_NUMBER() OVER (PARTITION BY LOT_ID ORDER BY HIST_SEQ) NUM, A.* " + "\n"); strSqlString.Append(" FROM RWIPLOTHIS A" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND LOT_ID IN ( " + "\n"); strSqlString.Append(" SELECT LOT_ID" + "\n"); strSqlString.Append(" FROM VWIPSHPLOT" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TO_FACTORY = '" + cboToFactory.Text + "'" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); strSqlString.Append(" AND OWNER_CODE = 'PROD'" + "\n"); //strSqlString.Append(" AND LOT_CMF_2 = 'FC'" + "\n"); strSqlString.Append(" AND LOT_CMF_2 = '" + cdvCustomer.Text + "'" + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" AND FACTORY IN ('HMKA','" + GlobalVariable.gsTestDefaultFactory + "')" + "\n"); strSqlString.Append(" AND OLD_MAT_VER = 1" + "\n"); strSqlString.Append(" AND TRAN_CODE='MERGE'" + "\n"); strSqlString.Append(" AND OPER IN ('A2300', 'T1300')" + "\n"); //strSqlString.Append(" AND LOT_CMF_2='FC'" + "\n"); strSqlString.Append(" AND LOT_CMF_2 = '" + cdvCustomer.Text + "'" + "\n"); strSqlString.Append(" AND FROM_TO_FLAG='T'" + "\n"); strSqlString.Append(" AND HIST_DEL_FLAG <> 'Y'" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" WHERE NUM = 1" + "\n"); strSqlString.Append(" UNION ALL" + "\n"); // Merge 수량 가져오기..Ship 된 Lot 만 가져오기 strSqlString.Append(" SELECT HIS.FROM_TO_LOT_ID, HIS.QTY_1-OLD_QTY_1, STS.LOT_CMF_4, STS.MAT_ID " + "\n"); strSqlString.Append(" FROM RWIPLOTHIS HIS," + "\n"); strSqlString.Append(" RWIPLOTSTS STS" + "\n"); strSqlString.Append(" WHERE HIS.LOT_ID IN ( " + "\n"); strSqlString.Append(" SELECT LOT_ID" + "\n"); strSqlString.Append(" FROM VWIPSHPLOT" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TO_FACTORY = '" + cboToFactory.Text + "'" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); strSqlString.Append(" AND OWNER_CODE = 'PROD'" + "\n"); //strSqlString.Append(" AND LOT_CMF_2 = 'FC'" + "\n"); strSqlString.Append(" AND LOT_CMF_2 = '" + cdvCustomer.Text + "'" + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" AND HIS.FACTORY IN ('HMKA','" + GlobalVariable.gsTestDefaultFactory + "') " + "\n"); strSqlString.Append(" AND HIS.TRAN_CODE='MERGE'" + "\n"); strSqlString.Append(" AND HIS.FROM_TO_FLAG='T'" + "\n"); strSqlString.Append(" AND HIS.OPER IN ('A2300', 'T1300')" + "\n"); strSqlString.Append(" AND HIS.HIST_DEL_FLAG <> 'Y'" + "\n"); strSqlString.Append(" AND HIS.FROM_TO_LOT_ID = STS.LOT_ID" + "\n"); strSqlString.Append(" UNION ALL" + "\n"); // Merge 안하고 Ship 된 이력 strSqlString.Append(" SELECT LOT_ID, SHIP_QTY_1, LOT_CMF_4, MAT_ID" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT LOT_ID,SHIP_QTY_1,LOT_CMF_4, MAT_ID" + "\n"); strSqlString.Append(" FROM VWIPSHPLOT" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND OWNER_CODE = 'PROD'" + "\n"); strSqlString.Append(" AND TO_FACTORY = '" + cboToFactory.Text + "'" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); //strSqlString.Append(" AND LOT_CMF_2 = 'FC'" + "\n"); strSqlString.Append(" AND LOT_CMF_2 = '" + cdvCustomer.Text + "'" + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + Start_Tran_Time + "' AND '" + End_Tran_Time + "'" + "\n"); strSqlString.Append(" ) " + "\n"); strSqlString.Append(" WHERE LOT_ID NOT IN (SELECT LOT_ID FROM RWIPLOTMRG WHERE FROM_TO_FLAG='T' AND OPER IN ('A2300', 'T1300')) " + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" GROUP BY LOT_CMF_4, MAT_ID" + "\n"); strSqlString.Append(" ) SHP" + "\n"); strSqlString.Append(" , MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND SHP.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND MAT.FACTORY = '" + GlobalVariable.gsTestDefaultFactory + "' " + "\n"); //strSqlString.Append(" AND MAT.DELETE_FLAG <> 'Y' " + "\n"); strSqlString.Append("ORDER BY MAT.MAT_CMF_7, SHP.LOT_CMF_4" + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 공정그룹의 설비 Arrange현황을 구하기 위한 쿼리를 생성하는 메서드 /// </summary> /// <param name="strStep">공정그룹의 이름</param> /// <returns>쿼리</returns> private string MakeSqlStringForPopup(string strStep) { if (strStep == null || strStep.Equals(string.Empty)) { throw new ArgumentException(RptMessages.GetMessage("STD100", GlobalVariable.gcLanguage)); } StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; string strSelect = string.Empty; string strDecode = string.Empty; string strDate = cdvDate.Value.ToString("yyyyMMdd"); string strPrevDate; if (DateTime.Now.ToString("yyyyMMdd").Equals(strDate)) // 오늘 날짜 { strDate = DateTime.Now.ToString("yyyyMMddHHmmss"); strPrevDate = DateTime.Now.AddDays(-1).ToString("yyyyMMdd") + "220000"; strSqlString.Append("SELECT GCM.DATA_1, MAT.MAT_ID " + "\n"); strSqlString.Append(" , RES.RES_MODEL AS MODEL " + "\n"); strSqlString.Append(" , RES.EQP_CNT AS CNT" + "\n"); strSqlString.Append(" , TRUNC(NVL(NVL(UPH.UPEH,0) * 22.5 * 0.7 * RES.EQP_CNT, 0)) AS CAPA " + "\n"); strSqlString.Append("FROM ( " + "\n"); strSqlString.Append(" SELECT LTH.FACTORY " + "\n"); strSqlString.Append(" , LTH.MAT_ID " + "\n"); strSqlString.Append(" , LTH.OPER " + "\n"); strSqlString.Append(" , DEF.RES_GRP_6 AS RES_MODEL " + "\n"); strSqlString.Append(" , DEF.RES_GRP_7 AS UPEH_GRP " + "\n"); strSqlString.Append(" , COUNT(*) AS EQP_CNT " + "\n"); strSqlString.Append(" FROM MRASRESLTH LTH, " + "\n"); strSqlString.Append(" MRASRESDEF DEF " + "\n"); strSqlString.Append(" WHERE 1 = 1 " + "\n"); strSqlString.Append(" AND LTH.FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); if (cdvFactory.Text == GlobalVariable.gsAssyDefaultFactory) { strSqlString.Append(" AND LTH.OPER NOT IN ('00001','00002') " + "\n"); } if (txtSearchProduct.Text.Trim() != "%" && txtSearchProduct.Text.Trim() != "") { strSqlString.Append(" AND LTH.MAT_ID LIKE '" + txtSearchProduct.Text + "'" + "\n"); } strSqlString.Append(" AND LTH.RES_HIST_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LTH.TRAN_TIME BETWEEN '" + strPrevDate + "' AND '" + strDate + "' " + "\n"); strSqlString.Append(" AND LTH.FACTORY = DEF.FACTORY " + "\n"); strSqlString.Append(" AND LTH.RES_ID = DEF.RES_ID " + "\n"); strSqlString.Append(" GROUP BY LTH.FACTORY, LTH.MAT_ID, LTH.OPER, DEF.RES_GRP_6, DEF.RES_GRP_7 " + "\n"); strSqlString.Append(" ) RES, " + "\n"); strSqlString.Append(" CRASUPHDEF UPH, " + "\n"); strSqlString.Append(" MWIPOPRDEF OPR, " + "\n"); strSqlString.Append(" MWIPMATDEF MAT, " + "\n"); strSqlString.Append(" MGCMTBLDAT GCM " + "\n"); strSqlString.Append("WHERE 1 = 1 " + "\n"); strSqlString.Append(" AND RES.FACTORY = UPH.FACTORY(+) " + "\n"); strSqlString.Append(" AND RES.OPER = UPH.OPER(+) " + "\n"); strSqlString.Append(" AND RES.RES_MODEL = UPH.RES_MODEL(+) " + "\n"); strSqlString.Append(" AND RES.UPEH_GRP = UPH.UPEH_GRP(+) " + "\n"); strSqlString.Append(" AND RES.MAT_ID = UPH.MAT_ID(+) " + "\n"); strSqlString.Append(" AND RES.FACTORY = OPR.FACTORY " + "\n"); strSqlString.Append(" AND OPR.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND MAT.FACTORY = GCM.FACTORY " + "\n"); strSqlString.Append(" AND RES.OPER = OPR.OPER " + "\n"); strSqlString.Append(" AND RES.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND MAT.MAT_GRP_1 = GCM.KEY_1 " + "\n"); strSqlString.Append(" AND OPR.OPER_GRP_1 = '" + strStep + "' " + "\n"); strSqlString.Append(" AND GCM.TABLE_NAME = 'H_CUSTOMER' " + "\n"); #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.Append("ORDER BY GCM.DATA_1, MAT.MAT_ID " + "\n"); } else // 과거 날짜 { strSqlString.Append("SELECT DATA_1 as Customer, MAT.MAT_ID as Product " + "\n"); strSqlString.Append(" , MODEL, SUM(CNT), AVG(CAPA)" + "\n"); strSqlString.Append("FROM ( " + "\n"); strSqlString.Append(" SELECT " + "\n"); strSqlString.Append(" GCM.DATA_1, MAT.MAT_ID" + "\n"); strSqlString.Append(" , CAP.RES_MODEL AS MODEL " + "\n"); strSqlString.Append(" , CAP.EQP_CNT AS CNT " + "\n"); strSqlString.Append(" , CAP.CAPA AS CAPA " + "\n"); strSqlString.Append(" FROM RSUMRESCAP CAP, " + "\n"); strSqlString.Append(" MWIPOPRDEF OPR, " + "\n"); strSqlString.Append(" MWIPMATDEF MAT, " + "\n"); strSqlString.Append(" MGCMTBLDAT GCM " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND CAP.FACTORY = OPR.FACTORY " + "\n"); strSqlString.Append(" AND OPR.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND MAT.FACTORY = GCM.FACTORY " + "\n"); strSqlString.Append(" AND CAP.OPER = OPR.OPER " + "\n"); strSqlString.Append(" AND CAP.MAT_ID = MAT.MAT_ID " + "\n"); strSqlString.Append(" AND MAT.MAT_GRP_1 = GCM.KEY_1 " + "\n"); strSqlString.Append(" AND CAP.CUTOFF_DT = '" + strDate + "' " + "\n"); strSqlString.Append(" AND GCM.TABLE_NAME = 'H_CUSTOMER' " + "\n"); strSqlString.Append(" AND CAP.FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"); if (txtSearchProduct.Text.Trim() != "%" && txtSearchProduct.Text.Trim() != "") { strSqlString.Append(" AND CAP.MAT_ID LIKE '" + txtSearchProduct.Text + "'" + "\n"); } strSqlString.Append(" AND OPR.OPER_GRP_1 = '" + strStep + "' " + "\n"); if (cdvFactory.Text == GlobalVariable.gsAssyDefaultFactory) { strSqlString.Append(" AND CAP.OPER NOT IN ('00001','00002') " + "\n"); } #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.Append(" ) MAT " + "\n"); strSqlString.AppendFormat("GROUP BY DATA_1, MAT_ID, MODEL " + "\n", QueryCond2); strSqlString.AppendFormat("ORDER BY DATA_1, MAT_ID, MODEL " + "\n", QueryCond2); } if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
private void btnView_Click(object sender, EventArgs e) { int Com_CNT = 0; DataTable dt = null; if (CheckField() == false) { return; } int iSubTotalCount = 0; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; GridColumnInit(); spdData_Sheet1.RowCount = 0; try { LoadingPopUp.LoadIngPopUpShow(this); this.Refresh(); dt = CmnFunction.oComm.GetFuncDataTable("DYNAMIC", MakeSqlString()); if (dt.Rows.Count == 0) { dt.Dispose(); LoadingPopUp.LoadingPopUpHidden(); CmnFunction.ShowMsgBox(RptMessages.GetMessage("STD010", GlobalVariable.gcLanguage)); return; } //by John //1.Griid 합계 표시 spdData.DataSource = dt; //int[] rowType = spdData.RPT_DataBindingWithSubTotal(dt, 0, 0, 0, null, null, btnSort); //spdData.Sheets[0].Rows[0].Remove(); //2. 칼럼 고정(필요하다면..) //spdData.Sheets[0].FrozenColumnCount = 9; //3. Total부분 셀머지 //spdData.RPT_FillDataSelectiveCells("Total", 0, 10, 0, 1, true, Align.Center, VerticalAlign.Center); //4. Column Auto Fit spdData.RPT_AutoFit(false); //ShowChart(5); if (tableForm.SelectedValueToQueryContainNull.Contains("RES_ID") == false) { iSubTotalCount += 1; int[] rowType = spdData.RPT_DataBindingWithSubTotal(dt, 0, iSubTotalCount, 3, null, null); spdData.RPT_AutoFit(false); dt.Dispose(); Com_CNT = spdData.ActiveSheet.ColumnCount; SetAvgVertical(1, Com_CNT, true); } //cdvRes_ID.Text = ""; //cdvModel.Text = ""; } catch (Exception ex) { LoadingPopUp.LoadingPopUpHidden(); CmnFunction.ShowMsgBox(ex.Message); } finally { LoadingPopUp.LoadingPopUpHidden(); } }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1; string QueryCond2; string QueryCond3; string sMonth; string sStartday; string sEndday; string sEnddayTomorrow; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; sMonth = cdvDate.Value.ToString("yyyyMM"); sStartday = sMonth + "01"; sEndday = cdvDate.Value.ToString("yyyyMMdd"); // 조회 월의 마지막 일 sEnddayTomorrow = cdvDate.Value.AddDays(1).ToString("yyyyMMdd"); strSqlString.AppendFormat("SELECT {0}, GUBUN " + "\n", QueryCond2); for (int i = 1; i <= iMonthDay; i++) { strSqlString.Append(string.Format(" , SUM(DECODE(WORK_DATE,'{0}{1:D2}', QTY, 0)) AS DAY{2:D2} \n", sMonth, i, i)); } strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT " + QueryCond1 + "\n"); strSqlString.Append(" , WORK_DATE " + "\n"); strSqlString.Append(" , DECODE(SEQ, 1, 'BOH', 2, '입고 (IN)', 3, '반품 (R-IN)', 4, 'AO (OUT)', 5, '반품입고 (R-OUT)', 6, 'LOSS', 7, 'EOH') AS GUBUN " + "\n"); strSqlString.Append(" , DECODE(SEQ, 1, BOH_QTY, 2, RCV_QTY, 3, R_IN_QTY, 4, SHP_QTY, 5, R_OUT_QTY, 6, LOSS_QTY, 7, EOH_QTY) AS QTY" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT " + QueryCond1 + "\n"); strSqlString.Append(" , WORK_DATE" + "\n"); strSqlString.Append(" , BOH_QTY" + "\n"); strSqlString.Append(" , RCV_QTY" + "\n"); strSqlString.Append(" , R_IN_QTY" + "\n"); strSqlString.Append(" , SHP_QTY" + "\n"); strSqlString.Append(" , R_OUT_QTY" + "\n"); strSqlString.Append(" , BOH_QTY + RCV_QTY + R_IN_QTY - SHP_QTY - R_OUT_QTY - EOH_QTY AS LOSS_QTY" + "\n"); strSqlString.Append(" , EOH_QTY" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT " + QueryCond3 + "\n"); strSqlString.Append(" , A.WORK_DATE" + "\n"); strSqlString.Append(" , SUM(NVL(B.BOH_QTY,0)) AS BOH_QTY" + "\n"); strSqlString.Append(" , SUM(NVL(C.RCV_QTY,0)+NVL(D.PC_IN_QTY,0)) AS RCV_QTY" + "\n"); strSqlString.Append(" , SUM(NVL(C.R_IN_QTY,0)) AS R_IN_QTY" + "\n"); strSqlString.Append(" , SUM(NVL(C.SHP_QTY,0)) AS SHP_QTY" + "\n"); strSqlString.Append(" , SUM(NVL(C.R_OUT_QTY,0)+NVL(D.PC_OUT_QTY,0)) AS R_OUT_QTY " + "\n"); strSqlString.Append(" , SUM(NVL(D.PC_IN_QTY,0)) AS PC_IN_QTY " + "\n"); strSqlString.Append(" , SUM(NVL(D.PC_OUT_QTY,0)) AS PC_OUT_QTY" + "\n"); strSqlString.Append(" , LEAD(SUM(NVL(BOH_QTY,0))) OVER(PARTITION BY " + QueryCond3 + " ORDER BY A.WORK_DATE) AS EOH_QTY " + "\n"); strSqlString.Append(" , SUM(SUM(NVL(B.BOH_QTY,0)+NVL(C.RCV_QTY,0)+NVL(C.R_IN_QTY,0)+NVL(C.SHP_QTY,0)+NVL(C.R_OUT_QTY,0)+NVL(D.PC_IN_QTY,0)+NVL(D.PC_OUT_QTY,0))) OVER(PARTITION BY A.MAT_CMF_8 ORDER BY A.WORK_DATE ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS TTL_QTY" + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT *" + "\n"); strSqlString.Append(" FROM MWIPMATDEF A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT TO_CHAR(TO_DATE('" + sStartday + "', 'YYYYMMDD') + (ROWNUM-1), 'YYYYMMDD') AS WORK_DATE" + "\n"); strSqlString.Append(" FROM DUAL" + "\n"); strSqlString.Append(" CONNECT BY LEVEL <= TO_CHAR(LAST_DAY(TO_DATE('" + sStartday + "', 'YYYYMMDD')), 'DD') + 1" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND DELETE_FLAG = ' '" + "\n"); strSqlString.Append(" AND MAT_ID LIKE 'CC%' " + "\n"); if (txtProduct.Text.Trim() != "%" && txtProduct.Text.Trim() != "") { strSqlString.Append(" AND MAT_ID LIKE '" + txtProduct.Text + "'" + "\n"); } #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_1 {0}" + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT WORK_DATE" + "\n"); strSqlString.Append(" , MAT_ID " + "\n"); strSqlString.Append(" , SUM(EOH_QTY_1) AS BOH_QTY" + "\n"); strSqlString.Append(" FROM RSUMWIPEOH" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND FACTORY = '" + cdvFactory.Text + "'" + "\n"); strSqlString.Append(" AND LOT_TYPE = 'W'" + "\n"); strSqlString.Append(" AND WORK_DATE BETWEEN '" + sStartday + "' AND '" + sEnddayTomorrow + "'" + "\n"); strSqlString.Append(" AND MAT_ID LIKE 'CC%'" + "\n"); strSqlString.Append(" AND SHIFT = '1'" + "\n"); strSqlString.Append(" AND CM_KEY_3 LIKE 'P%' " + "\n"); strSqlString.Append(" GROUP BY WORK_DATE, MAT_ID" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT WORK_DATE " + "\n"); strSqlString.Append(" , MAT_ID " + "\n"); strSqlString.Append(" , SUM(CASE WHEN OPER = 'A0000' THEN (S1_FAC_IN_QTY_1+S2_FAC_IN_QTY_1+S3_FAC_IN_QTY_1+S4_FAC_IN_QTY_1) ELSE 0 END) AS RCV_QTY" + "\n"); strSqlString.Append(" , SUM(CASE WHEN OPER = 'AZ010' THEN (S1_FAC_IN_QTY_1+S2_FAC_IN_QTY_1+S3_FAC_IN_QTY_1+S4_FAC_IN_QTY_1) ELSE 0 END) AS R_IN_QTY" + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY <> 'RETURN' THEN (S1_FAC_OUT_QTY_1+S2_FAC_OUT_QTY_1+S3_FAC_OUT_QTY_1+S4_FAC_OUT_QTY_1) ELSE 0 END) AS SHP_QTY " + "\n"); strSqlString.Append(" , SUM(CASE WHEN FACTORY = 'RETURN' THEN (S1_FAC_OUT_QTY_1+S2_FAC_OUT_QTY_1+S3_FAC_OUT_QTY_1+S4_FAC_OUT_QTY_1) ELSE 0 END) AS R_OUT_QTY" + "\n"); strSqlString.Append(" FROM CSUMFACMOV" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND CM_KEY_1 = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" AND WORK_DATE BETWEEN '" + sStartday + "' AND '" + sEndday + "'" + "\n"); strSqlString.Append(" AND MAT_ID LIKE 'CC%'" + "\n"); strSqlString.Append(" AND CM_KEY_3 LIKE 'P%'" + "\n"); strSqlString.Append(" GROUP BY WORK_DATE, MAT_ID" + "\n"); strSqlString.Append(" ) C " + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT WORK_DATE" + "\n"); strSqlString.Append(" , DECODE(RN, 1, MAT_ID, OLD_MAT_ID) AS MAT_ID" + "\n"); strSqlString.Append(" , SUM(DECODE(RN, 1, QTY_1, 0)) AS PC_IN_QTY" + "\n"); strSqlString.Append(" , SUM(DECODE(RN, 1, 0, QTY_1)) AS PC_OUT_QTY " + "\n"); strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT TO_CHAR(TO_DATE(TRAN_TIME, 'YYYYMMDDHH24MISS') + 2/24, 'YYYYMMDD') AS WORK_DATE, MAT_ID, OLD_MAT_ID, SUM(QTY_1) AS QTY_1" + "\n"); strSqlString.Append(" FROM MWIPADTHIS@RPTTOMES" + "\n"); strSqlString.Append(" WHERE LOT_TYPE = 'W'" + "\n"); strSqlString.Append(" AND FACTORY = '" + cdvFactory.Text + "' " + "\n"); strSqlString.Append(" AND TRAN_CODE = 'ADAPT'" + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + sStartday + "060000' AND '" + sEnddayTomorrow + "055959'" + "\n"); strSqlString.Append(" AND MAT_ID LIKE 'CC%'" + "\n"); strSqlString.Append(" AND TRAN_CMF_5 = 'ADAPT-PART_CHANGE'" + "\n"); strSqlString.Append(" AND HIST_DEL_FLAG = ' '" + "\n"); strSqlString.Append(" AND OPER LIKE 'A%'" + "\n"); strSqlString.Append(" AND LOT_CMF_5 LIKE 'P%'" + "\n"); strSqlString.Append(" GROUP BY TO_CHAR(TO_DATE(TRAN_TIME, 'YYYYMMDDHH24MISS') + 2/24, 'YYYYMMDD'), MAT_ID, OLD_MAT_ID " + "\n"); strSqlString.Append(" ) A" + "\n"); strSqlString.Append(" , (" + "\n"); strSqlString.Append(" SELECT LEVEL AS RN FROM DUAL CONNECT BY LEVEL = 2" + "\n"); strSqlString.Append(" ) B" + "\n"); strSqlString.Append(" GROUP BY WORK_DATE, DECODE(RN, 1, MAT_ID, OLD_MAT_ID)" + "\n"); strSqlString.Append(" ) D" + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND A.WORK_DATE = B.WORK_DATE(+)" + "\n"); strSqlString.Append(" AND A.WORK_DATE = C.WORK_DATE(+)" + "\n"); strSqlString.Append(" AND A.WORK_DATE = D.WORK_DATE(+)" + "\n"); strSqlString.Append(" AND A.MAT_ID = B.MAT_ID(+)" + "\n"); strSqlString.Append(" AND A.MAT_ID = C.MAT_ID(+)" + "\n"); strSqlString.Append(" AND A.MAT_ID = D.MAT_ID(+)" + "\n"); strSqlString.Append(" AND A.FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "'" + "\n"); strSqlString.Append(" AND A.DELETE_FLAG = ' '" + "\n"); strSqlString.Append(" AND A.MAT_ID LIKE 'CC%'" + "\n"); strSqlString.Append(" GROUP BY " + QueryCond3 + ", A.WORK_DATE " + "\n"); strSqlString.Append(" ) " + "\n"); strSqlString.Append(" WHERE 1=1" + "\n"); strSqlString.Append(" AND TTL_QTY > 0" + "\n"); strSqlString.Append(" AND WORK_DATE BETWEEN '" + sStartday + "' AND '" + sEndday + "'" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" , (SELECT LEVEL AS SEQ FROM DUAL CONNECT BY LEVEL <= 7)" + "\n"); strSqlString.Append(" )" + "\n"); strSqlString.Append(" GROUP BY " + QueryCond1 + ", GUBUN" + "\n"); strSqlString.Append(" ORDER BY " + QueryCond1 + ", DECODE(GUBUN, 'BOH', 1, '입고 (IN)', 2, '반품 (R-IN)', 3, 'AO (OUT)', 4, '반품입고 (R-OUT)', 5, 'LOSS', 6, 'EOH', 7)" + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; // 요약, 상세 bool isBrief = rbtBrief.Checked; // Decode 반복문 셋팅 string strDecode = string.Empty; if (isBrief) { for (int i = 0; i < dtOperGrp.Rows.Count; i++) { strDecode += " , SUM(DECODE(LOT.OPER_GROUP, '" + dtOperGrp.Rows[i][0].ToString() + "', QTY_1, 0)) QTY_" + i.ToString() + "\n"; } } else { for (int i = 0; i < dtOper.Rows.Count; i++) { strDecode += " , SUM(DECODE(LOT.OPER, '" + dtOper.Rows[i][0].ToString() + "', QTY_1, 0)) QTY_" + i.ToString() + "\n"; } } // 시간 관련 셋팅 string strDate = cdvDate.Value.ToString("yyyyMMdd"); bool isRealTime = false; if (strDate.Equals(DateTime.Now.ToString("yyyyMMdd"))) { strDate = DateTime.Now.ToString("yyyyMMddHHmmss"); isRealTime = true; } else { if (cboTimeBase.SelectedIndex == 0) { strDate = strDate + "060000"; } else { strDate = strDate + "220000"; } isRealTime = false; } // 쿼리 strSqlString.Append("SELECT " + QueryCond1 + "\n"); //strSqlString.Append(" , LOT.LOT_CMF_4 RUN_ID " + "\n"); //strSqlString.Append(" , LOT.LOT_ID " + "\n"); strSqlString.Append(" , MAX(TO_CHAR(TO_DATE(LOT.LOT_CMF_14,'YYYYMMDDHH24MISS'),'YYYY-MM-DD HH24:MI')) AS IN_TIME " + "\n"); strSqlString.Append(" , MAX(TO_CHAR(TO_DATE(LOT.OPER_IN_TIME,'YYYYMMDDHH24MISS'),'YYYY-MM-DD HH24:MI')) AS MOVE_TIME " + "\n"); // kpcs if (chkKpcs.Checked) { strSqlString.Append(" , ROUND(SUM(LOT.CREATE_QTY_1)/1000) AS IN_QTY " + "\n"); strDecode = strDecode.Replace("SUM(DECODE", "ROUND(SUM(DECODE").Replace("QTY_1, 0))", "QTY_1, 0))/1000)"); } else { strSqlString.Append(" , SUM(LOT.CREATE_QTY_1) AS IN_QTY " + "\n"); } strSqlString.Append(strDecode); strSqlString.Append(" , TRUNC(SUM(TO_DATE('" + strDate + "', 'YYYYMMDDHH24MISS') - TO_DATE(LOT.LOT_CMF_14,'YYYYMMDDHH24MISS')) / COUNT(LOT_ID), 2) AS TTL_TAT " + "\n"); strSqlString.Append(" , TRUNC(SUM(TO_DATE('" + strDate + "', 'YYYYMMDDHH24MISS') - TO_DATE(LOT.OPER_IN_TIME,'YYYYMMDDHH24MISS')) / COUNT(LOT_ID), 2) AS OPER_TAT " + "\n"); // 2018-03-22-임종우 : PCB Strip 정보 if (ckbPCB.Checked == true) { strSqlString.Append(" , MAX(NVL(TO_NUMBER((SELECT ATTR_VALUE FROM MATRNAMSTS@RPTTOMES WHERE ATTR_KEY = LOT.M_LOT_ID AND ATTR_TYPE = 'LOT' AND FACTORY = LOT.FACTORY AND ATTR_NAME = 'PCB_STRIP')),0)) AS PCB_STRIP" + "\n"); strSqlString.Append(" , MAX(NVL(TO_NUMBER((SELECT ATTR_VALUE FROM MATRNAMSTS@RPTTOMES WHERE ATTR_KEY = LOT.M_LOT_ID AND ATTR_TYPE = 'LOT' AND FACTORY = LOT.FACTORY AND ATTR_NAME = 'PCB_BAD_QTY')),0)) AS PCB_BAD_QTY" + "\n"); } strSqlString.Append(" FROM (" + "\n"); strSqlString.Append(" SELECT LOT.FACTORY, LOT.MAT_ID, LOT.LOT_CMF_4, LOT.LOT_ID, LOT.LOT_CMF_14, LOT.OPER_IN_TIME, LOT.CREATE_QTY_1, OPR.OPER_GRP_1 AS OPER_GROUP, LOT.OPER, LOT.QTY_1 " + "\n"); if (ckbPCB.Checked == true) { strSqlString.Append(" , CASE WHEN LOT.MAT_ID LIKE 'EI%' THEN ( " + "\n"); strSqlString.Append(" SELECT LOT_ID " + "\n"); strSqlString.Append(" FROM CRESMATHIS@RPTTOMES " + "\n"); strSqlString.Append(" WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' " + "\n"); strSqlString.Append(" AND START_LOT_ID = LOT.LOT_ID " + "\n"); strSqlString.Append(" AND M_MAT_ID IN (SELECT MAT_ID FROM MWIPMATDEF WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND MAT_TYPE = 'PB' AND DELETE_FLAG = ' ') " + "\n"); strSqlString.Append(" ) END AS M_LOT_ID " + "\n"); } if (isRealTime) { strSqlString.Append(" FROM RWIPLOTSTS LOT, " + "\n"); strSqlString.Append(" MWIPOPRDEF OPR " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); } else { strSqlString.Append(" FROM RWIPLOTSTS_BOH LOT, " + "\n"); strSqlString.Append(" MWIPOPRDEF OPR " + "\n"); strSqlString.AppendFormat(" WHERE LOT.CUTOFF_DT = '{0}'" + "\n", strDate.Substring(0, 10)); } strSqlString.Append(" AND LOT.FACTORY = OPR.FACTORY " + "\n"); strSqlString.Append(" AND LOT.OPER = OPR.OPER " + "\n"); strSqlString.Append(" AND LOT.FACTORY = '" + cdvFactory.Text + "' " + "\n"); if (txtSearchProduct.Text.Trim() != "%" && txtSearchProduct.Text.Trim() != "") { strSqlString.AppendFormat(" AND LOT.MAT_ID LIKE '{0}'" + "\n", txtSearchProduct.Text); } if (txtRunID.Text.Trim() != "") { strSqlString.AppendFormat(" AND LOT.LOT_CMF_4 = '{0}'" + "\n", txtRunID.Text); } if (ckbPCB.Checked == true) { strSqlString.Append(" AND LOT.MAT_ID LIKE 'EI%'" + "\n"); } strSqlString.Append(" AND LOT.LOT_DEL_FLAG = ' ' " + "\n"); strSqlString.Append(" AND LOT.MAT_VER = 1 " + "\n"); strSqlString.Append(" AND LOT.LOT_TYPE = 'W' " + "\n"); if (cdvLotType.Text != "ALL") { strSqlString.Append(" AND LOT.LOT_CMF_5 LIKE '" + cdvLotType.Text + "'" + "\n"); } strSqlString.Append(" ) LOT " + "\n"); strSqlString.Append(" , MWIPMATDEF MAT " + "\n"); strSqlString.Append(" WHERE LOT.FACTORY = MAT.FACTORY " + "\n"); strSqlString.Append(" AND LOT.MAT_ID = MAT.MAT_ID " + "\n"); #region 상세 조회에 따른 SQL문 생성 if (udcWIPCondition1.Text != "ALL" && udcWIPCondition1.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_1 {0} " + "\n", udcWIPCondition1.SelectedValueToQueryString); } if (udcWIPCondition2.Text != "ALL" && udcWIPCondition2.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_2 {0} " + "\n", udcWIPCondition2.SelectedValueToQueryString); } if (udcWIPCondition3.Text != "ALL" && udcWIPCondition3.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_3 {0} " + "\n", udcWIPCondition3.SelectedValueToQueryString); } if (udcWIPCondition4.Text != "ALL" && udcWIPCondition4.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_4 {0} " + "\n", udcWIPCondition4.SelectedValueToQueryString); } if (udcWIPCondition5.Text != "ALL" && udcWIPCondition5.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_5 {0} " + "\n", udcWIPCondition5.SelectedValueToQueryString); } if (udcWIPCondition6.Text != "ALL" && udcWIPCondition6.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_6 {0} " + "\n", udcWIPCondition6.SelectedValueToQueryString); } if (udcWIPCondition7.Text != "ALL" && udcWIPCondition7.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_7 {0} " + "\n", udcWIPCondition7.SelectedValueToQueryString); } if (udcWIPCondition8.Text != "ALL" && udcWIPCondition8.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_8 {0} " + "\n", udcWIPCondition8.SelectedValueToQueryString); } if (udcWIPCondition9.Text != "ALL" && udcWIPCondition9.Text != "") { strSqlString.AppendFormat(" AND MAT.MAT_GRP_9 {0} " + "\n", udcWIPCondition9.SelectedValueToQueryString); } #endregion strSqlString.Append("GROUP BY " + QueryCond2 + "\n"); strSqlString.Append("ORDER BY " + QueryCond2 + "\n"); //strSqlString.Append("ORDER BY Customer, LOT.MAT_ID, LOT.LOT_CMF_4, LOT.LOT_ID, LOT.LOT_CMF_14 " + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }
/// <summary> /// 4. 쿼리 생성 /// </summary> /// <returns></returns> private string MakeSqlString() { StringBuilder strSqlString = new StringBuilder(); string QueryCond1 = null; string QueryCond2 = null; string QueryCond3 = null; udcTableForm tableForm = (udcTableForm)btnSort.BindingForm; QueryCond1 = tableForm.SelectedValueToQueryContainNull; QueryCond2 = tableForm.SelectedValue2ToQueryContainNull; QueryCond3 = tableForm.SelectedValue3ToQueryContainNull; //////////////////////////////////////////////////// // udcDurationDate2에서 정확한 조회시간을 받아오기 //string strFromDate = cdvFromToDate.Start_Tran_Time; //string strToDate = cdvFromToDate.End_Tran_Time; string strFromDate = udcFromToDate.ExactFromDate; string strToDate = udcFromToDate.ExactToDate; //////////////////////////////////////////////////// #region " 조회조건에 해당하는 총 순간정지건수 합계 구하기 : TOT_CNT " string TOT_CNT = string.Empty; DataTable dt = null; strSqlString.Append("SELECT NVL(SUM(ALM.CNT), 0) TOT_CNT " + "\n"); strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(" SELECT FACTORY, RES_ID, COUNT(*) CNT " + "\n"); //2012-09-13-김민우 CRASALMHIS 에서 MRASALMHIS로 변경 //strSqlString.Append(" FROM CRASALMHIS@RPTTOMES " + "\n"); strSqlString.Append(" FROM MRASALMHIS@RPTTOMES " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND TRAN_TIME BETWEEN '" + strFromDate + "' AND '" + strToDate + "' " + "\n"); strSqlString.Append(" AND FACTORY = '" + cdvFactory.Text + "'" + "\n"); //strSqlString.Append(" AND CLEAR_TIME > 0 " + "\n"); strSqlString.Append(" AND PERIOD > 0 " + "\n"); strSqlString.Append(" AND UP_DOWN_FLAG = 'U' " + "\n"); strSqlString.Append(" AND ALARM_USE = 'Y' " + "\n"); // 2010-06-17-임종우 : 순간정지 조회 기능 추가 if (cdvAlm.Text != "ALL" && cdvAlm.Text != "") { //strSqlString.Append(" AND ALARM_ID IN (SELECT ALARM_EQ_ID FROM CRASALMDEF@RPTTOMES WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND ALARM_ID = '" + cdvAlm.Text + "') " + "\n"); strSqlString.Append(" AND ALARM_ID " + cdvAlm.SelectedValueToQueryString + "\n"); } strSqlString.Append(" GROUP BY FACTORY, RES_ID " + "\n"); strSqlString.Append(" ) ALM " + "\n"); strSqlString.Append(" , MRASRESDEF RES " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND ALM.FACTORY = RES.FACTORY " + "\n"); strSqlString.Append(" AND ALM.RES_ID = RES.RES_ID " + "\n"); #region " RAS 상세 조회 " if (udcRASCondition1.Text != "ALL" && udcRASCondition1.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_1 {0} " + "\n", udcRASCondition1.SelectedValueToQueryString); } if (udcRASCondition2.Text != "ALL" && udcRASCondition2.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_2 {0} " + "\n", udcRASCondition2.SelectedValueToQueryString); } if (udcRASCondition3.Text != "ALL" && udcRASCondition3.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_3 {0} " + "\n", udcRASCondition3.SelectedValueToQueryString); } if (udcRASCondition4.Text != "ALL" && udcRASCondition4.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_5 {0} " + "\n", udcRASCondition4.SelectedValueToQueryString); } if (udcRASCondition5.Text != "ALL" && udcRASCondition5.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_6 {0} " + "\n", udcRASCondition5.SelectedValueToQueryString); } if (udcRASCondition6.Text != "ALL" && udcRASCondition6.Text != "") { strSqlString.AppendFormat(" AND RES.RES_ID {0} " + "\n", udcRASCondition6.SelectedValueToQueryString); } if (udcRASCondition7.Text != "ALL" && udcRASCondition7.Text != "") { strSqlString.AppendFormat(" AND RES.RES_ID IN ( SELECT UNIQUE RES_ID FROM CRASRESUSR WHERE USER_DESC {0} ) " + "\n", udcRASCondition7.SelectedValueToQueryString); } strSqlString.Append(" AND RES.RES_TYPE NOT IN ('DUMMY')" + "\n"); #endregion dt = CmnFunction.oComm.GetFuncDataTable("DYNAMIC", strSqlString.ToString()); if (dt != null) { TOT_CNT = dt.Rows[0][0].ToString(); } #endregion #region " 반복되는 내부 쿼리 " string strSql = string.Empty; // 2010-04-30-임종우 : 전체 조회로 변경(권순태 요청) //strSql += " SELECT RNK, FACTORY, RES_ID, CNT " + "\n"; //strSql += " FROM ( " + "\n"; //strSql += " ( " + "\n"; strSql += " SELECT RNK, FACTORY, RES_ID, CNT " + "\n"; strSql += " FROM ( " + "\n"; strSql += " SELECT ROW_NUMBER() OVER(ORDER BY CNT DESC) RNK " + "\n"; strSql += " , FACTORY " + "\n"; strSql += " , RES_ID " + "\n"; strSql += " , CNT " + "\n"; strSql += " FROM ( " + "\n"; strSql += " SELECT FACTORY, RES_ID, COUNT(*) CNT " + "\n"; //strSql += " FROM CRASALMHIS@RPTTOMES " + "\n"; strSql += " FROM MRASALMHIS@RPTTOMES " + "\n"; strSql += " WHERE 1=1 " + "\n"; strSql += " AND TRAN_TIME BETWEEN '" + strFromDate + "' AND '" + strToDate + "' " + "\n"; strSql += " AND FACTORY = '" + cdvFactory.Text + "'" + "\n"; //strSql += " AND CLEAR_TIME > 0 "+ "\n"; strSql += " AND PERIOD > 0 " + "\n"; strSql += " AND UP_DOWN_FLAG = 'U' " + "\n"; strSql += " AND ALARM_USE = 'Y' " + "\n"; // 2010-06-17-임종우 : 순간정지 조회 기능 추가 if (cdvAlm.Text != "ALL" && cdvAlm.Text != "") { //strSql += " AND ALARM_ID IN (SELECT ALARM_EQ_ID FROM CRASALMDEF@RPTTOMES WHERE FACTORY = '" + GlobalVariable.gsAssyDefaultFactory + "' AND ALARM_ID = '" + cdvAlm.Text + "') " + "\n"; strSql += " AND ALARM_ID " + cdvAlm.SelectedValueToQueryString + "\n"; } strSql += " GROUP BY FACTORY, RES_ID " + "\n"; strSql += " ) " + "\n"; strSql += " ) " + "\n"; //strSql += " WHERE RNK < 51 " + "\n"; //strSql += " ) " + "\n"; //strSql += " UNION ALL " + "\n"; //strSql += " ( " + "\n"; //strSql += " SELECT 51, FACTORY , 'OTHER', CNT " + "\n"; //strSql += " FROM ( " + "\n"; //strSql += " SELECT ROW_NUMBER() OVER(ORDER BY CNT DESC) RNK " + "\n"; //strSql += " , FACTORY " + "\n"; //strSql += " , RES_ID " + "\n"; //strSql += " , CNT " + "\n"; //strSql += " FROM ( " + "\n"; //strSql += " SELECT FACTORY, RES_ID, COUNT(*) CNT " + "\n"; //strSql += " FROM CRASALMHIS@RPTTOMES " + "\n"; //strSql += " WHERE 1=1 " + "\n"; //strSql += " AND TRAN_TIME BETWEEN '" + strFromDate + "' AND '" + strToDate + "' " + "\n"; //strSql += " AND FACTORY " + cdvFactory.SelectedValueToQueryString + "\n"; //strSql += " GROUP BY FACTORY, RES_ID " + "\n"; //strSql += " ) " + "\n"; //strSql += " ) " + "\n"; //strSql += " WHERE RNK > 50 " + "\n"; //strSql += " ) " + "\n"; //strSql += " ) " + "\n"; #endregion strSqlString.Remove(0, strSqlString.Length - 1); strSqlString.Append("SELECT " + QueryCond1 + "\n"); strSqlString.Append(" , TO_CHAR(A.RNK) RNK " + "\n"); strSqlString.Append(" , A.RES_ID " + "\n"); strSqlString.Append(" , RES.RES_STS_2 " + "\n"); strSqlString.Append(" , A.CNT " + "\n"); strSqlString.Append(" , ROUND(RATIO_TO_REPORT(A.CNT) OVER(), 4)*100 RATIO " + "\n"); strSqlString.Append(" , ROUND(SUM(B.CNT)/" + TOT_CNT + ",4)*100 ADDED_RATIO " + "\n"); strSqlString.Append(" FROM ( " + "\n"); strSqlString.Append(strSql); strSqlString.Append(" ) A " + "\n"); strSqlString.Append(" , ( " + "\n"); strSqlString.Append(strSql); strSqlString.Append(" ) B " + "\n"); strSqlString.Append(" , MRASRESDEF RES " + "\n"); strSqlString.Append(" WHERE 1=1 " + "\n"); strSqlString.Append(" AND A.RNK > B.RNK(+)-1 " + "\n"); strSqlString.Append(" AND A.CNT IS NOT NULL " + "\n"); strSqlString.Append(" AND A.FACTORY = RES.FACTORY " + "\n"); strSqlString.Append(" AND A.RES_ID = RES.RES_ID " + "\n"); #region " RAS 상세 조회 " if (udcRASCondition1.Text != "ALL" && udcRASCondition1.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_1 {0} " + "\n", udcRASCondition1.SelectedValueToQueryString); } if (udcRASCondition2.Text != "ALL" && udcRASCondition2.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_2 {0} " + "\n", udcRASCondition2.SelectedValueToQueryString); } if (udcRASCondition3.Text != "ALL" && udcRASCondition3.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_3 {0} " + "\n", udcRASCondition3.SelectedValueToQueryString); } if (udcRASCondition4.Text != "ALL" && udcRASCondition4.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_5 {0} " + "\n", udcRASCondition4.SelectedValueToQueryString); } if (udcRASCondition5.Text != "ALL" && udcRASCondition5.Text != "") { strSqlString.AppendFormat(" AND RES.RES_GRP_6 {0} " + "\n", udcRASCondition5.SelectedValueToQueryString); } if (udcRASCondition6.Text != "ALL" && udcRASCondition6.Text != "") { strSqlString.AppendFormat(" AND RES.RES_ID {0} " + "\n", udcRASCondition6.SelectedValueToQueryString); } if (udcRASCondition7.Text != "ALL" && udcRASCondition7.Text != "") { strSqlString.AppendFormat(" AND RES.RES_ID IN ( SELECT UNIQUE RES_ID FROM CRASRESUSR WHERE USER_DESC {0} ) " + "\n", udcRASCondition7.SelectedValueToQueryString); } strSqlString.Append(" AND RES.RES_TYPE NOT IN ('DUMMY')" + "\n"); #endregion strSqlString.Append(" GROUP BY RES.FACTORY, " + QueryCond3 + ", A.RNK, A.RES_ID, RES.RES_STS_2, A.CNT " + "\n"); strSqlString.Append(" ORDER BY A.RNK " + "\n"); if (GlobalVariable.gsUserGroup == "ADMIN_GROUP" || GlobalVariable.gsUserGroup == "HANA_ADMIN_GROUP") { System.Windows.Forms.Clipboard.SetText(strSqlString.ToString()); } return(strSqlString.ToString()); }