Пример #1
0
        /// <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());
        }
Пример #2
0
        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());
        }
Пример #3
0
        /// <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());
        }
Пример #4
0
        /// <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());
        }
Пример #5
0
        /// <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());
        }
Пример #6
0
        /// <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());
        }
Пример #7
0
        /// <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());
        }
Пример #8
0
        /// <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());
        }
Пример #9
0
        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());
        }
Пример #10
0
        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());
        }
Пример #11
0
        /// <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());
        }
Пример #12
0
        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());
        }
Пример #13
0
        /// <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());
        }
Пример #14
0
        /// <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());
        }
Пример #15
0
        /// <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());
        }
Пример #16
0
        /// <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());
        }
Пример #17
0
        /// <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());
        }
Пример #18
0
        /// <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());
        }
Пример #19
0
        /// <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());
        }
Пример #20
0
        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());
        }
Пример #21
0
        /// <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());
        }
Пример #22
0
        /// <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());
        }
Пример #23
0
        /// <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());
        }
Пример #24
0
        /// <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());
        }
Пример #25
0
        /// <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());
        }
Пример #26
0
        /// <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());
        }
Пример #27
0
        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();
            }
        }
Пример #28
0
        /// <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());
        }
Пример #29
0
        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());
        }
Пример #30
0
        /// <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());
        }