2024年9月26日 星期四

V80202 -顯示工號 – [V]子件工單 - UNION 用法 - 日期起迄 - 分成2行 - 過濾條件

 目的: V80202 -顯示工號 – [V]子件工單  

處理說明: 1>子件工單的定義: 共3類
   1>>AMM單號含 -x : AMMNO 長度>13 且 SUBSTRING(AMMNO,1,13) IN (AMM單號)
   2>>QDR工單且 PSAPNO 符合條件的工單 : 為QDR工單,且 PSAPNO IN (工號)
   3>>TP工單且PSAPNO符合條件的QDR工單: 為 TP工單,且 PSAPNO IN ( 如上2>>的QDR工單)


1>*.cs
string Tmp_sWhere = "";  //過濾條件SQL - 不含 Select   from 
string Tmp_sFlds = "  AMMNO, PJER, PCODE, CST_NO, BM146NO, SAPNO,  TESTHR, OSM   ";
string Tmp_Sql = " SELECT  RNK,     "+ Tmp_sFlds                                                    
                          + "  FROM  ( "
                                  + "   SELECT   dense_rank()  over(order by  AMMNO) as RNK,  "+ Tmp_sFlds
                                  +"    FROM  ( "
                                                        + "  SELECT "+ Tmp_sFlds
                                                        + "  FROM      AMM_SRO  A "
                                                        + "    WHERE   1=1 ";
            if (!myfunc.checkisnull(Tmp_AMMNO))
            {
                Tmp_Sql = Tmp_Sql + " AND   AMMNO=" + myfunc.AA(Tmp_AMMNO);
                Tmp_sWhere = Tmp_sWhere + " AND   AMMNO=" + myfunc.AA(Tmp_AMMNO);
            }
            if (!myfunc.checkisnull(Tmp_SAPNO))
            {
                Tmp_Sql = Tmp_Sql + " AND   SAPNO=" + myfunc.AA(Tmp_SAPNO);
                Tmp_sWhere = Tmp_sWhere + " AND   SAPNO=" + myfunc.AA(Tmp_SAPNO);
            }

//顯示: DISP    6 :  6子件工單
//顯示 [子件工單] 
1>AMM單號含 -x :AMMNO 長度>13 且 SUBSTRING(AMMNO,1,13) IN (符合條件的 AMM單號)
2>QDR工單且 PSAPNO 符合條件的工單  : 為QDR工單,且 PSAPNO  IN (符合條件的工號)
3>TP工單且PSAPNO符合條件的QDR工單: 為 TP工單,且 PSAPNO IN ( 如上2>的QDR工單)

  if (!myfunc.checkisnull(Tmp_chk_DISP))
  {
     if (Tmp_chk_DISP.IndexOf("6") > -1)   //顯示6子件工單 - 顯示目前工單的子件工單
     {
         Tmp_Sql = Tmp_Sql
                         + " UNION  "
                                           + " SELECT  " + Tmp_sFlds
                                           + " FROM     AMM_SRO "
                                           + " WHERE  1=1 "
                                           + "  AND      AMMNO IN (  SELECT  AMMNO FROM  AMM_SRO "
                                                                                     +" WHERE  LENGTH(AMMNO)>13  "
         +" AND SUBSTR(AMMNO,1,13) IN (SELECT AMMNO FROM AMM_SRO WHERE   1=1   " + Tmp_sWhere + " ) )"
                       + "   UNION  "
                                           + "  SELECT  " + Tmp_sFlds
                                           + "   FROM     AMM_SRO  "
                                           + "   WHERE   1=1 "
                                           + "  AND        ISQDR = 'Y'   "
                         + "  AND         PSAPNO IN  ( SELECT SAPNO FROM AMM_SRO  WHERE   1 = 1   " + Tmp_sWhere + ")"
                        + "   UNION  "
                                           + "  SELECT  " + Tmp_sFlds
                                           + "   FROM     AMM_SRO  "
                                           + "   WHERE   1=1 "
                                           + "  AND        ISTP = 'Y'   "
                                           + "  AND  PSAPNO IN ( SELECT SAPNO  FROM  AMM_SRO  WHERE  ISQDR='Y'   AND  PSAPNO IN ( SELECT SAPNO FROM AMM_SRO  WHERE   1=1  " + Tmp_sWhere + " )  )  ";
                    }
                }  //end of  if (!myfunc.checkisnull(Tmp_chk_DISP))

            Tmp_Sql = Tmp_Sql + "   )   ";   // UNION , 不含 RNK
            Tmp_Sql = Tmp_Sql + "   )   ";  //  RNK

沒有留言:

張貼留言