目的: 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
沒有留言:
張貼留言