Module SQL_長照拆帳制計算 Friend Sub SQL_薪資彙總表_仁寶() ConnOpen() SQL1 = "SELECT 人事拆帳制薪資報表明細_仁寶.姓名, Q1.BA比例, Q1.BA比例 AS BA正常, Q1.BA比例 AS GA正常, Q2.BA, Q3.GA, Q3.GA AS GA加給, Q4.其他, Q1.BA比例 AS 主薪, Q1.BA比例 AS AA比例, Q1.BA比例 AS AA, Q1.BA比例 AS 副薪, Q1.BA比例 AS 總薪, M3.平日轉場 + M3.[平0-8] AS 平日工時, Q1.BA比例 AS [平日平均時薪/含平日加班], Q1.BA比例 AS 平日加班扣除額, Q1.BA比例 AS [平日月薪/不含加班], Q1.BA比例 AS 正常班平均時薪, Q1.BA比例 AS 服務津貼, Q1.BA比例 AS 轉場津貼, Q1.BA比例 AS [修正後月薪+A+津貼], Q1.BA比例 AS 加班費計算時薪標準, Q1.BA比例 AS 加班費, Q1.BA比例 AS 總薪資, Q4.A01 " & Ao(0) & ", Q4.A02 " & Ao(1) & ", Q4.A03 " & Ao(2) & ", Q4.A04 " & Ao(3) & ", Q4.A05 " & Ao(4) & ", Q4.A06 " & Ao(5) & ", Q4.A07 " & Ao(6) & ", Q4.A08 " & Ao(7) & ", Q4.A09 " & Ao(8) & ", Q4.A10 " & Ao(9) & ", Q4.A11 " & Ao(10) & ", Q4.A12 " & Ao(11) & ", Q4.A12 AS 減項總計, Q4.B01 " & Bo(0) & ", Q4.B02 " & Bo(1) & ", Q4.B03 " & Bo(2) & ", Q4.B04 " & Bo(3) & ", Q4.B05 " & Bo(4) & ", Q4.B06 " & Bo(5) & ", Q4.B07 " & Bo(6) & ", Q4.B08 " & Bo(7) & ", Q4.B09 " & Bo(8) & ", Q4.B10 " & Bo(9) & ", Q4.B11 " & Bo(10) & ", Q4.B12 " & Bo(11) & ", Q4.A12 AS 加項總計, Q4.C01 " & Co(0) & ", Q1.BA比例 AS 總時數, Q1.BA比例 AS 平均時薪, Q1.BA比例 AS [BA+AA總額], Q1.BA比例 AS [餘額], Q1.BA比例 AS [餘額比], A1.AA03, A2.AA04, A3.AA05, A4.AA06, A5.AA08, A6.AA10, A7.AA11, M1.GAM1, M2.GAM2, M3.平日轉場, M3.假日轉場, M3.[平0-8], M3.[平9-10], M3.[平11-12], M3.[國0-2], M3.[國3-8], M3.[休0-2], M3.[休3-8], M3.平日轉場 AS 總服務時數, M3.平日轉場 AS 總轉場時數 FROM 人事拆帳制薪資報表明細_仁寶 LEFT OUTER JOIN (SELECT 姓名, 姓名 AS BA比例 FROM 人事拆帳制明細_仁寶 WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') GROUP BY 姓名, 姓名) AS Q1 ON 人事拆帳制薪資報表明細_仁寶.姓名 = Q1.姓名 LEFT OUTER JOIN (SELECT 姓名, SUM(CONVERT(DECIMAL(18, 2), 全額)) AS BA FROM 人事拆帳制明細_仁寶 AS 人事拆帳制明細_仁寶_1 WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (加班類型 LIKE N'正常班') AND (編號 LIKE 'BA%') GROUP BY 姓名) AS Q2 ON 人事拆帳制薪資報表明細_仁寶.姓名 = Q2.姓名 LEFT OUTER JOIN (SELECT 姓名, SUM(CONVERT(DECIMAL(18, 2), 全額)) AS GA FROM 人事拆帳制明細_仁寶 AS 人事拆帳制明細_仁寶_2 WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (加班類型 LIKE N'正常班') AND (編號 LIKE 'GA%') GROUP BY 姓名) AS Q3 ON 人事拆帳制薪資報表明細_仁寶.姓名 = Q3.姓名 LEFT OUTER JOIN (SELECT 姓名, SUM(CONVERT(DECIMAL(18, 2), 次數)) AS GAM1 FROM 人事拆帳制明細_仁寶 AS 人事拆帳制明細_仁寶_3 WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (加班類型 LIKE N'正常班') AND (編號 LIKE 'GA%') GROUP BY 姓名) AS M1 ON 人事拆帳制薪資報表明細_仁寶.姓名 = M1.姓名 LEFT OUTER JOIN (SELECT 姓名, SUM(CONVERT(DECIMAL(18, 2), 次數)) AS GAM2 FROM 人事拆帳制明細_仁寶 AS 人事拆帳制明細_仁寶_4 WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (編號 LIKE 'GA%') GROUP BY 姓名) AS M2 ON 人事拆帳制薪資報表明細_仁寶.姓名 = M2.姓名 LEFT OUTER JOIN (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA03 FROM " & SQL2 & " WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA03%') GROUP BY 服務人員) AS A1 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A1.姓名 LEFT OUTER JOIN (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA04 FROM " & SQL2 & " AS " & SQL2 & "_6 WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA04%') GROUP BY 服務人員) AS A2 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A2.姓名 LEFT OUTER JOIN (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA05 FROM " & SQL2 & " AS " & SQL2 & "_5 WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA05%') GROUP BY 服務人員) AS A3 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A3.姓名 LEFT OUTER JOIN (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA06 FROM " & SQL2 & " AS " & SQL2 & "_4 WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA06%') GROUP BY 服務人員) AS A4 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A4.姓名 LEFT OUTER JOIN (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA08 FROM " & SQL2 & " AS " & SQL2 & "_3 WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA08%') GROUP BY 服務人員) AS A5 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A5.姓名 LEFT OUTER JOIN (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA10 FROM " & SQL2 & " AS " & SQL2 & "_2 WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA10%') GROUP BY 服務人員) AS A6 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A6.姓名 LEFT OUTER JOIN (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA11 FROM " & SQL2 & " AS " & SQL2 & "_1 WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA11%') GROUP BY 服務人員) AS A7 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A7.姓名 LEFT OUTER JOIN (SELECT TOP (100) PERCENT 姓名, CONVERT(DECIMAL(18, 2), 平日排班轉場時間_分) / 60 AS 平日轉場, CONVERT(DECIMAL(18, 2), 假日排班轉場時間_分) / 60 AS 假日轉場, CONVERT(DECIMAL(18, 2), 平日班時數_分) / 60 AS [平0-8], CONVERT(DECIMAL(18, 2), B平日9_10小時) / 60 + CONVERT(DECIMAL(18, 2), GS平日9_10小時) / 60 AS [平9-10], CONVERT(DECIMAL(18, 2), B平日11_12小時) / 60 + CONVERT(DECIMAL(18, 2), GS平日11_12小時) / 60 AS [平11-12], CONVERT(DECIMAL(18, 2), B國假0_2小時) / 60 + CONVERT(DECIMAL(18, 2), GS國假0_2小時) / 60 AS [國0-2], CONVERT(DECIMAL(18, 2), B國假3_8小時) / 60 + CONVERT(DECIMAL(18, 2), GS國假3_8小時) / 60 AS [國3-8], CONVERT(DECIMAL(18, 2), B休假0_2小時) / 60 + CONVERT(DECIMAL(18, 2), GS休假0_2小時) / 60 AS [休0-2], CONVERT(DECIMAL(18, 2), B休假3_8小時) / 60 + CONVERT(DECIMAL(18, 2), GS休假3_8小時) / 60 AS [休3-8] FROM 人事拆帳制薪資報表明細_仁寶 AS 人事拆帳制薪資報表明細_仁寶_1 WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') ORDER BY 姓名) AS M3 ON 人事拆帳制薪資報表明細_仁寶.姓名 = M3.姓名 LEFT OUTER JOIN (SELECT 姓名, A01, A02, A03, A04, A05, A06, A07, A08, A09, A10, A11, A12, B01, B02, B03, B04, B05, B06, B07, B08, B09, B10, B11, B12, C01, 其他 FROM 人事拆帳制其他應收付表 WHERE (流水號 LIKE '" & PA1 & "')) AS Q4 ON 人事拆帳制薪資報表明細_仁寶.姓名 = Q4.姓名 WHERE (人事拆帳制薪資報表明細_仁寶.姓名 NOT LIKE '') AND (人事拆帳制薪資報表明細_仁寶.流水號 LIKE '" & PA1 & "%') ORDER BY 人事拆帳制薪資報表明細_仁寶.姓名" CmdSet_For_DGV() End Sub Friend Sub SQL_加班計算_仁寶() ConnOpen() SQL1 = "SELECT 人事拆帳制每日明細_仁寶.日期, DATENAME(WEEKDAY, CONVERT(DATE, 人事拆帳制每日明細_仁寶.日期)) AS 星期, 人事拆帳制每日明細_仁寶.姓名, 人事拆帳制每日明細_仁寶.服務個案, 人事拆帳制每日明細_仁寶.排班轉場時間_分, 人事拆帳制每日明細_仁寶.服務時間_分, 人事拆帳制每日明細_仁寶.日期 AS [上班時間累加/分], 人事拆帳制每日明細_仁寶.日期 AS 開始加班, 人事拆帳制每日明細_仁寶.日期 AS 第一段, 人事拆帳制每日明細_仁寶.日期 AS 第二段, 人事拆帳制每日明細_仁寶.日期 AS A10, 人事拆帳制每日明細_仁寶.日期 AS A11, 人事拆帳制每日明細_仁寶.日期 AS A12, 人事拆帳制每日明細_仁寶.日期 AS A20, 人事拆帳制每日明細_仁寶.日期 AS A21, 人事拆帳制每日明細_仁寶.日期 AS A22, 人事拆帳制每日明細_仁寶.日期 AS A30, 人事拆帳制每日明細_仁寶.日期 AS A31, 人事拆帳制每日明細_仁寶.日期 AS A32, 人事拆帳制每日明細_仁寶.日期 AS A40, 人事拆帳制每日明細_仁寶.日期 AS A41, 人事拆帳制每日明細_仁寶.日期 AS A42, 人事拆帳制每日明細_仁寶.日期 AS A50, 人事拆帳制每日明細_仁寶.日期 AS A51, 人事拆帳制每日明細_仁寶.日期 AS A52, 人事拆帳制每日明細_仁寶.日期 AS A60, 人事拆帳制每日明細_仁寶.日期 AS A61, 人事拆帳制每日明細_仁寶.日期 AS A62, 人事拆帳制每日明細_仁寶.日期 AS 驗1, 人事拆帳制每日明細_仁寶.日期 AS 驗2, 人事拆帳制每日明細_仁寶.日期 AS 驗3, 人事拆帳制每日明細_仁寶.日期 AS 驗4, 人事拆帳制每日明細_仁寶.日期 AS 驗5, 人事拆帳制每日明細_仁寶.日期 AS 驗6, Q1.BA比例, 人事拆帳制每日明細_仁寶.日期 AS 退1, 人事拆帳制每日明細_仁寶.日期 AS 退2, 人事拆帳制每日明細_仁寶.日期 AS 退3, 人事拆帳制每日明細_仁寶.日期 AS 退4, 人事拆帳制每日明細_仁寶.日期 AS 退5, 人事拆帳制每日明細_仁寶.日期 AS 退6, 人事拆帳制每日明細_仁寶.日期 AS 合退 FROM 人事拆帳制每日明細_仁寶 LEFT OUTER JOIN (SELECT 姓名, 員工拆帳比 AS BA比例 FROM 人事拆帳制明細_仁寶 WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (員工拆帳比 NOT LIKE '') GROUP BY 姓名, 員工拆帳比) AS Q1 ON 人事拆帳制每日明細_仁寶.姓名 = Q1.姓名 WHERE (人事拆帳制每日明細_仁寶.流水號 LIKE '" & PA1 & "%') AND (人事拆帳制每日明細_仁寶.姓名 IS NOT NULL) ORDER BY 人事拆帳制每日明細_仁寶.姓名, 人事拆帳制每日明細_仁寶.日期, CONVERT(DECIMAL(18, 2), 人事拆帳制每日明細_仁寶.序)" CmdSet_For_DGV() End Sub Friend Sub SQL_服務資料_仁寶() ConnOpen() SQL1 = "SELECT 服務日期, 排班時間, 居服員姓名, 姓名, 排班時間長度, LEFT(服務項目代碼, 5) AS 代碼, 姓名 AS 已使用 FROM 人事拆帳制服務紀錄_仁寶 WHERE (流水號 LIKE '" & PA1 & "%') AND (服務項目代碼 NOT LIKE '') ORDER BY 居服員姓名, 服務日期, 排班時間 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_碼別() ConnOpen() : SQL1 = "SELECT 碼別, 每小時_錢 FROM 人事拆帳制碼別" : CmdSet_For_DGV() End Sub Friend Sub SQL_碼別_新增() ConnOpen() : SQL1 = "INSERT INTO 人事拆帳制碼別 (碼別, 每小時_錢) VALUES (N'" & PA20 & "', N'" & PA21 & "')" : CmdSet_For_dr() End Sub Friend Sub SQL_碼別_修改() ConnOpen() : SQL1 = "UPDATE 人事拆帳制碼別 SET 每小時_錢 = N'" & PA21 & "' WHERE 碼別 LIKE N'" & PA20 & "'" : CmdSet_For_dr() End Sub Friend Sub SQL_碼別_查詢() ConnOpen() : SQL1 = "SELECT 碼別, 每小時_錢 FROM 人事拆帳制碼別 WHERE 碼別 LIKE N'" & PA20 & "'" : CmdSet_For_dr() End Sub Friend Sub SQL_表頭() ConnOpen() : SQL1 = "SELECT 對應, 欄位名稱 FROM 人事拆帳制其他表抬頭 ORDER BY 對應" : CmdSet_For_DGV() End Sub Friend Sub SQL_放差額() ConnOpen() SQL1 = "SELECT 流水號, 姓名, 流水號 AS 差額 FROM 人事拆帳制薪資報表明細_仁寶 WHERE (流水號 LIKE '" & PA1 & "%') AND (姓名 NOT LIKE '') GROUP BY 姓名, 流水號 ORDER BY 姓名" CmdSet_For_DGV() End Sub Friend Sub SQL_讀差額() ConnOpen() : SQL1 = "SELECT 流水號, 姓名, 差額 FROM 人事拆帳制A碼差額 WHERE (流水號 LIKE '" & PA10 & "%') ORDER BY 姓名" : CmdSet_For_DGV() End Sub Friend Sub SQL_查差額() ConnOpen() : SQL1 = "SELECT TOP(1) 流水號, 姓名, 差額 FROM 人事拆帳制A碼差額 WHERE (流水號 LIKE '" & PA10 & "%')" : CmdSet_For_dr() End Sub Friend Sub SQL_差額刪除() ConnOpen() : SQL1 = "DELETE 人事拆帳制A碼差額 WHERE (流水號 LIKE '" & PA1 & "%')" : CmdSet_For_dr() End Sub Friend Sub SQL_差額新增() ConnOpen() : SQL1 = "INSERT INTO 人事拆帳制A碼差額 (流水號, 姓名, 差額) VALUES " & SQL2 : CmdSet_For_dr() End Sub Friend Sub SQL_確認A碼長照() ConnOpen() : SQL1 = "SELECT TOP (1) 流水號 FROM 人事拆帳制A碼項目長照所 WHERE (流水號 LIKE '" & PA1 & "%')" : CmdSet_For_dr() End Sub Friend Sub SQL_表頭_修改() ConnOpen() : SQL1 = "UPDATE 人事拆帳制其他表抬頭 SET 欄位名稱 = N'" & PA3 & "' WHERE 對應 LIKE N'" & PA2 & "'" : CmdSet_For_dr() End Sub Friend Sub SQL_BA比() ConnOpen() : SQL1 = "SELECT 流水號, 姓名, BA FROM 人事拆帳制BA比 WHERE 流水號 LIKE ''" : CmdSet_For_DGV() End Sub Friend Sub SQL_BA比_當月() ConnOpen() : SQL1 = "SELECT 流水號, 姓名, BA FROM 人事拆帳制BA比 WHERE 流水號 LIKE '" & PA1 & "%'" : CmdSet_For_DGV() End Sub Friend Sub SQL_BA比_新增() ConnOpen() : SQL1 = "INSERT INTO 人事拆帳制BA比 (流水號, 姓名, BA) VALUES" & SQL2 : CmdSet_For_dr() End Sub Friend Sub SQL_BA比_修改() ConnOpen() : SQL1 = "UPDATE 人事拆帳制BA比 SET BA = N'" & PA3 & "' WHERE 流水號 LIKE N'" & PA1 & "' AND 姓名 LIKE N'" & PA2 & "'" : CmdSet_For_dr() End Sub Friend Sub SQL_階級加給() ConnOpen() SQL1 = "SELECT 流水號, 內容, 級數, 加給, 級數 AS 級數1 FROM 人事拆帳制階級津貼設定 WHERE 流水號 LIKE N'" & PA1 & "%' ORDER BY 內容, 級數 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_階級加給_預設() ConnOpen() : SQL1 = "SELECT 流水號, 內容, 級數, 加給 FROM 人事拆帳制階級津貼設定 WHERE 流水號 LIKE N''" : CmdSet_For_DGV() End Sub Friend Sub SQL_階級加給_新增() ConnOpen() : SQL1 = "INSERT INTO 人事拆帳制階級津貼設定 (流水號, 內容, 級數, 加給) VALUES " & SQL2 : CmdSet_For_dr() End Sub Friend Sub SQL_階級加給_修改() ConnOpen() SQL1 = "UPDATE 人事拆帳制階級津貼設定 SET 級數 = N'" & PA10 & "', 加給 = N'" & PA20 & "' WHERE 流水號 LIKE N'" & PA1 & "' AND 內容 LIKE N'" & PA30 & "' AND 級數 = N'" & PA11 & "'" CmdSet_For_dr() End Sub Friend Sub SQL_資料日期01() ConnOpen() : SQL1 = "SELECT 流水號 FROM 人事拆帳制薪資報表明細_仁寶 GROUP BY 流水號 ORDER BY 流水號 DESC" : CmdSet_For_dr() End Sub Friend Sub SQL_其他表查詢() ConnOpen() : SQL1 = "SELECT 流水號 FROM 人事拆帳制其他應收付表 WHERE (流水號 LIKE N'" & PA1 & "%')" : CmdSet_For_dr() End Sub Friend Sub SQL_其他表_新增() ConnOpen() SQL1 = "INSERT INTO 人事拆帳制其他應收付表 (流水號, 姓名, A01, A02, A03, A04, A05, A06, A07, A08, A09, A10, A11, A12, B01, B02, B03, B04, B05, B06, B07, B08, B09, B10, B11, B12, C01, 其他) VALUES " & SQL2 CmdSet_For_dr() End Sub Friend Sub SQL_其他表_修改() ConnOpen() : SQL1 = "UPDATE 人事拆帳制其他應收付表 SET " & SQL2 : CmdSet_For_dr() End Sub End Module