暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

SQL_長照拆帳制計算.vb 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. Module SQL_長照拆帳制計算
  2. Friend Sub SQL_薪資彙總表_仁寶()
  3. ConnOpen()
  4. SQL1 = "SELECT 人事拆帳制薪資報表明細_仁寶.姓名, Q1.BA比例, Q1.BA比例 AS BA正常, Q1.BA比例 AS GA正常, Q2.BA, Q3.GA, Q3.GA AS GA加給, Q4.其他,
  5. Q1.BA比例 AS 主薪, Q1.BA比例 AS AA比例,
  6. Q1.BA比例 AS AA, Q1.BA比例 AS 副薪, Q1.BA比例 AS 總薪, M3.平日轉場 + M3.[平0-8] AS 平日工時,
  7. Q1.BA比例 AS [平日平均時薪/含平日加班], Q1.BA比例 AS 平日加班扣除額, Q1.BA比例 AS [平日月薪/不含加班], Q1.BA比例 AS 正常班平均時薪,
  8. Q1.BA比例 AS 服務津貼, Q1.BA比例 AS 轉場津貼, Q1.BA比例 AS [修正後月薪+A+津貼], Q1.BA比例 AS 加班費計算時薪標準, Q1.BA比例 AS 加班費,
  9. 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) & ",
  10. 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 減項總計,
  11. 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) & ",
  12. 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) & ",
  13. Q1.BA比例 AS 總時數, Q1.BA比例 AS 平均時薪, Q1.BA比例 AS [BA+AA總額], Q1.BA比例 AS [餘額], Q1.BA比例 AS [餘額比],
  14. A1.AA03, A2.AA04, A3.AA05, A4.AA06, A5.AA08, A6.AA10, A7.AA11,
  15. M1.GAM1, M2.GAM2,
  16. 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 總服務時數,
  17. M3.平日轉場 AS 總轉場時數
  18. FROM 人事拆帳制薪資報表明細_仁寶 LEFT OUTER JOIN
  19. (SELECT 姓名, 姓名 AS BA比例 FROM 人事拆帳制明細_仁寶
  20. WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%')
  21. GROUP BY 姓名, 姓名) AS Q1 ON 人事拆帳制薪資報表明細_仁寶.姓名 = Q1.姓名 LEFT OUTER JOIN
  22. (SELECT 姓名, SUM(CONVERT(DECIMAL(18, 2), 全額)) AS BA FROM 人事拆帳制明細_仁寶 AS 人事拆帳制明細_仁寶_1
  23. WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (加班類型 LIKE N'正常班') AND (編號 LIKE 'BA%')
  24. GROUP BY 姓名) AS Q2 ON 人事拆帳制薪資報表明細_仁寶.姓名 = Q2.姓名 LEFT OUTER JOIN
  25. (SELECT 姓名, SUM(CONVERT(DECIMAL(18, 2), 全額)) AS GA FROM 人事拆帳制明細_仁寶 AS 人事拆帳制明細_仁寶_2
  26. WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (加班類型 LIKE N'正常班') AND (編號 LIKE 'GA%')
  27. GROUP BY 姓名) AS Q3 ON 人事拆帳制薪資報表明細_仁寶.姓名 = Q3.姓名 LEFT OUTER JOIN
  28. (SELECT 姓名, SUM(CONVERT(DECIMAL(18, 2), 次數)) AS GAM1 FROM 人事拆帳制明細_仁寶 AS 人事拆帳制明細_仁寶_3
  29. WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (加班類型 LIKE N'正常班') AND (編號 LIKE 'GA%')
  30. GROUP BY 姓名) AS M1 ON 人事拆帳制薪資報表明細_仁寶.姓名 = M1.姓名 LEFT OUTER JOIN
  31. (SELECT 姓名, SUM(CONVERT(DECIMAL(18, 2), 次數)) AS GAM2 FROM 人事拆帳制明細_仁寶 AS 人事拆帳制明細_仁寶_4
  32. WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (編號 LIKE 'GA%')
  33. GROUP BY 姓名) AS M2 ON 人事拆帳制薪資報表明細_仁寶.姓名 = M2.姓名 LEFT OUTER JOIN
  34. (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA03 FROM " & SQL2 & "
  35. WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA03%')
  36. GROUP BY 服務人員) AS A1 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A1.姓名 LEFT OUTER JOIN
  37. (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA04 FROM " & SQL2 & " AS " & SQL2 & "_6
  38. WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA04%')
  39. GROUP BY 服務人員) AS A2 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A2.姓名 LEFT OUTER JOIN
  40. (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA05 FROM " & SQL2 & " AS " & SQL2 & "_5
  41. WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA05%')
  42. GROUP BY 服務人員) AS A3 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A3.姓名 LEFT OUTER JOIN
  43. (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA06 FROM " & SQL2 & " AS " & SQL2 & "_4
  44. WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA06%')
  45. GROUP BY 服務人員) AS A4 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A4.姓名 LEFT OUTER JOIN
  46. (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA08 FROM " & SQL2 & " AS " & SQL2 & "_3
  47. WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA08%')
  48. GROUP BY 服務人員) AS A5 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A5.姓名 LEFT OUTER JOIN
  49. (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA10 FROM " & SQL2 & " AS " & SQL2 & "_2
  50. WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA10%')
  51. GROUP BY 服務人員) AS A6 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A6.姓名 LEFT OUTER JOIN
  52. (SELECT 服務人員 AS 姓名, SUM(CONVERT(DECIMAL(18, 2), 小計)) AS AA11 FROM " & SQL2 & " AS " & SQL2 & "_1
  53. WHERE (服務人員 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (服務代碼 LIKE 'AA11%')
  54. GROUP BY 服務人員) AS A7 ON 人事拆帳制薪資報表明細_仁寶.姓名 = A7.姓名 LEFT OUTER JOIN
  55. (SELECT TOP (100) PERCENT 姓名, CONVERT(DECIMAL(18, 2), 平日排班轉場時間_分) / 60 AS 平日轉場,
  56. CONVERT(DECIMAL(18, 2), 假日排班轉場時間_分) / 60 AS 假日轉場, CONVERT(DECIMAL(18, 2), 平日班時數_分) / 60 AS [平0-8],
  57. CONVERT(DECIMAL(18, 2), B平日9_10小時) / 60 + CONVERT(DECIMAL(18, 2), GS平日9_10小時) / 60 AS [平9-10],
  58. CONVERT(DECIMAL(18, 2), B平日11_12小時) / 60 + CONVERT(DECIMAL(18, 2), GS平日11_12小時) / 60 AS [平11-12],
  59. CONVERT(DECIMAL(18, 2), B國假0_2小時) / 60 + CONVERT(DECIMAL(18, 2), GS國假0_2小時) / 60 AS [國0-2],
  60. CONVERT(DECIMAL(18, 2), B國假3_8小時) / 60 + CONVERT(DECIMAL(18, 2), GS國假3_8小時) / 60 AS [國3-8],
  61. CONVERT(DECIMAL(18, 2), B休假0_2小時) / 60 + CONVERT(DECIMAL(18, 2), GS休假0_2小時) / 60 AS [休0-2],
  62. CONVERT(DECIMAL(18, 2), B休假3_8小時) / 60 + CONVERT(DECIMAL(18, 2), GS休假3_8小時) / 60 AS [休3-8]
  63. FROM 人事拆帳制薪資報表明細_仁寶 AS 人事拆帳制薪資報表明細_仁寶_1
  64. WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%')
  65. ORDER BY 姓名) AS M3 ON 人事拆帳制薪資報表明細_仁寶.姓名 = M3.姓名 LEFT OUTER JOIN
  66. (SELECT 姓名, A01, A02, A03, A04, A05, A06, A07, A08, A09, A10, A11, A12, B01, B02, B03, B04, B05, B06, B07, B08, B09, B10,
  67. B11, B12, C01, 其他
  68. FROM 人事拆帳制其他應收付表
  69. WHERE (流水號 LIKE '" & PA1 & "')) AS Q4 ON 人事拆帳制薪資報表明細_仁寶.姓名 = Q4.姓名
  70. WHERE (人事拆帳制薪資報表明細_仁寶.姓名 NOT LIKE '') AND (人事拆帳制薪資報表明細_仁寶.流水號 LIKE '" & PA1 & "%')
  71. ORDER BY 人事拆帳制薪資報表明細_仁寶.姓名"
  72. CmdSet_For_DGV()
  73. End Sub
  74. Friend Sub SQL_加班計算_仁寶()
  75. ConnOpen()
  76. SQL1 = "SELECT 人事拆帳制每日明細_仁寶.日期, DATENAME(WEEKDAY, CONVERT(DATE, 人事拆帳制每日明細_仁寶.日期)) AS 星期, 人事拆帳制每日明細_仁寶.姓名,
  77. 人事拆帳制每日明細_仁寶.服務個案, 人事拆帳制每日明細_仁寶.排班轉場時間_分, 人事拆帳制每日明細_仁寶.服務時間_分, 人事拆帳制每日明細_仁寶.日期 AS [上班時間累加/分],
  78. 人事拆帳制每日明細_仁寶.日期 AS 開始加班, 人事拆帳制每日明細_仁寶.日期 AS 第一段, 人事拆帳制每日明細_仁寶.日期 AS 第二段, 人事拆帳制每日明細_仁寶.日期 AS A10,
  79. 人事拆帳制每日明細_仁寶.日期 AS A11, 人事拆帳制每日明細_仁寶.日期 AS A12, 人事拆帳制每日明細_仁寶.日期 AS A20, 人事拆帳制每日明細_仁寶.日期 AS A21,
  80. 人事拆帳制每日明細_仁寶.日期 AS A22, 人事拆帳制每日明細_仁寶.日期 AS A30, 人事拆帳制每日明細_仁寶.日期 AS A31, 人事拆帳制每日明細_仁寶.日期 AS A32,
  81. 人事拆帳制每日明細_仁寶.日期 AS A40, 人事拆帳制每日明細_仁寶.日期 AS A41, 人事拆帳制每日明細_仁寶.日期 AS A42, 人事拆帳制每日明細_仁寶.日期 AS A50,
  82. 人事拆帳制每日明細_仁寶.日期 AS A51, 人事拆帳制每日明細_仁寶.日期 AS A52, 人事拆帳制每日明細_仁寶.日期 AS A60, 人事拆帳制每日明細_仁寶.日期 AS A61,
  83. 人事拆帳制每日明細_仁寶.日期 AS A62, 人事拆帳制每日明細_仁寶.日期 AS 驗1, 人事拆帳制每日明細_仁寶.日期 AS 驗2, 人事拆帳制每日明細_仁寶.日期 AS 驗3,
  84. 人事拆帳制每日明細_仁寶.日期 AS 驗4, 人事拆帳制每日明細_仁寶.日期 AS 驗5, 人事拆帳制每日明細_仁寶.日期 AS 驗6, Q1.BA比例,
  85. 人事拆帳制每日明細_仁寶.日期 AS 退1, 人事拆帳制每日明細_仁寶.日期 AS 退2, 人事拆帳制每日明細_仁寶.日期 AS 退3, 人事拆帳制每日明細_仁寶.日期 AS 退4,
  86. 人事拆帳制每日明細_仁寶.日期 AS 退5, 人事拆帳制每日明細_仁寶.日期 AS 退6, 人事拆帳制每日明細_仁寶.日期 AS 合退
  87. FROM 人事拆帳制每日明細_仁寶 LEFT OUTER JOIN
  88. (SELECT 姓名, 員工拆帳比 AS BA比例 FROM 人事拆帳制明細_仁寶
  89. WHERE (姓名 NOT LIKE '') AND (流水號 LIKE '" & PA1 & "%') AND (員工拆帳比 NOT LIKE '')
  90. GROUP BY 姓名, 員工拆帳比) AS Q1 ON 人事拆帳制每日明細_仁寶.姓名 = Q1.姓名
  91. WHERE (人事拆帳制每日明細_仁寶.流水號 LIKE '" & PA1 & "%') AND (人事拆帳制每日明細_仁寶.姓名 IS NOT NULL)
  92. ORDER BY 人事拆帳制每日明細_仁寶.姓名, 人事拆帳制每日明細_仁寶.日期, CONVERT(DECIMAL(18, 2),
  93. 人事拆帳制每日明細_仁寶.序)"
  94. CmdSet_For_DGV()
  95. End Sub
  96. Friend Sub SQL_服務資料_仁寶()
  97. ConnOpen()
  98. SQL1 = "SELECT 服務日期, 排班時間, 居服員姓名, 姓名, 排班時間長度, LEFT(服務項目代碼, 5) AS 代碼, 姓名 AS 已使用
  99. FROM 人事拆帳制服務紀錄_仁寶
  100. WHERE (流水號 LIKE '" & PA1 & "%') AND (服務項目代碼 NOT LIKE '')
  101. ORDER BY 居服員姓名, 服務日期, 排班時間 DESC"
  102. CmdSet_For_DGV()
  103. End Sub
  104. Friend Sub SQL_碼別()
  105. ConnOpen() : SQL1 = "SELECT 碼別, 每小時_錢 FROM 人事拆帳制碼別" : CmdSet_For_DGV()
  106. End Sub
  107. Friend Sub SQL_碼別_新增()
  108. ConnOpen() : SQL1 = "INSERT INTO 人事拆帳制碼別 (碼別, 每小時_錢) VALUES (N'" & PA20 & "', N'" & PA21 & "')" : CmdSet_For_dr()
  109. End Sub
  110. Friend Sub SQL_碼別_修改()
  111. ConnOpen() : SQL1 = "UPDATE 人事拆帳制碼別 SET 每小時_錢 = N'" & PA21 & "' WHERE 碼別 LIKE N'" & PA20 & "'" : CmdSet_For_dr()
  112. End Sub
  113. Friend Sub SQL_碼別_查詢()
  114. ConnOpen() : SQL1 = "SELECT 碼別, 每小時_錢 FROM 人事拆帳制碼別 WHERE 碼別 LIKE N'" & PA20 & "'" : CmdSet_For_dr()
  115. End Sub
  116. Friend Sub SQL_表頭()
  117. ConnOpen() : SQL1 = "SELECT 對應, 欄位名稱 FROM 人事拆帳制其他表抬頭 ORDER BY 對應" : CmdSet_For_DGV()
  118. End Sub
  119. Friend Sub SQL_放差額()
  120. ConnOpen()
  121. SQL1 = "SELECT 流水號, 姓名, 流水號 AS 差額 FROM 人事拆帳制薪資報表明細_仁寶 WHERE (流水號 LIKE '" & PA1 & "%') AND (姓名 NOT LIKE '') GROUP BY 姓名, 流水號 ORDER BY 姓名"
  122. CmdSet_For_DGV()
  123. End Sub
  124. Friend Sub SQL_讀差額()
  125. ConnOpen() : SQL1 = "SELECT 流水號, 姓名, 差額 FROM 人事拆帳制A碼差額 WHERE (流水號 LIKE '" & PA10 & "%') ORDER BY 姓名" : CmdSet_For_DGV()
  126. End Sub
  127. Friend Sub SQL_查差額()
  128. ConnOpen() : SQL1 = "SELECT TOP(1) 流水號, 姓名, 差額 FROM 人事拆帳制A碼差額 WHERE (流水號 LIKE '" & PA10 & "%')" : CmdSet_For_dr()
  129. End Sub
  130. Friend Sub SQL_差額刪除()
  131. ConnOpen() : SQL1 = "DELETE 人事拆帳制A碼差額 WHERE (流水號 LIKE '" & PA1 & "%')" : CmdSet_For_dr()
  132. End Sub
  133. Friend Sub SQL_差額新增()
  134. ConnOpen() : SQL1 = "INSERT INTO 人事拆帳制A碼差額 (流水號, 姓名, 差額) VALUES " & SQL2 : CmdSet_For_dr()
  135. End Sub
  136. Friend Sub SQL_確認A碼長照()
  137. ConnOpen() : SQL1 = "SELECT TOP (1) 流水號 FROM 人事拆帳制A碼項目長照所 WHERE (流水號 LIKE '" & PA1 & "%')" : CmdSet_For_dr()
  138. End Sub
  139. Friend Sub SQL_表頭_修改()
  140. ConnOpen() : SQL1 = "UPDATE 人事拆帳制其他表抬頭 SET 欄位名稱 = N'" & PA3 & "' WHERE 對應 LIKE N'" & PA2 & "'" : CmdSet_For_dr()
  141. End Sub
  142. Friend Sub SQL_BA比()
  143. ConnOpen() : SQL1 = "SELECT 流水號, 姓名, BA FROM 人事拆帳制BA比 WHERE 流水號 LIKE ''" : CmdSet_For_DGV()
  144. End Sub
  145. Friend Sub SQL_BA比_當月()
  146. ConnOpen() : SQL1 = "SELECT 流水號, 姓名, BA FROM 人事拆帳制BA比 WHERE 流水號 LIKE '" & PA1 & "%'" : CmdSet_For_DGV()
  147. End Sub
  148. Friend Sub SQL_BA比_新增()
  149. ConnOpen() : SQL1 = "INSERT INTO 人事拆帳制BA比 (流水號, 姓名, BA) VALUES" & SQL2 : CmdSet_For_dr()
  150. End Sub
  151. Friend Sub SQL_BA比_修改()
  152. ConnOpen() : SQL1 = "UPDATE 人事拆帳制BA比 SET BA = N'" & PA3 & "' WHERE 流水號 LIKE N'" & PA1 & "' AND 姓名 LIKE N'" & PA2 & "'" : CmdSet_For_dr()
  153. End Sub
  154. Friend Sub SQL_階級加給()
  155. ConnOpen()
  156. SQL1 = "SELECT 流水號, 內容, 級數, 加給, 級數 AS 級數1 FROM 人事拆帳制階級津貼設定 WHERE 流水號 LIKE N'" & PA1 & "%' ORDER BY 內容, 級數 DESC"
  157. CmdSet_For_DGV()
  158. End Sub
  159. Friend Sub SQL_階級加給_預設()
  160. ConnOpen() : SQL1 = "SELECT 流水號, 內容, 級數, 加給 FROM 人事拆帳制階級津貼設定 WHERE 流水號 LIKE N''" : CmdSet_For_DGV()
  161. End Sub
  162. Friend Sub SQL_階級加給_新增()
  163. ConnOpen() : SQL1 = "INSERT INTO 人事拆帳制階級津貼設定 (流水號, 內容, 級數, 加給) VALUES " & SQL2 : CmdSet_For_dr()
  164. End Sub
  165. Friend Sub SQL_階級加給_修改()
  166. ConnOpen()
  167. SQL1 = "UPDATE 人事拆帳制階級津貼設定 SET 級數 = N'" & PA10 & "', 加給 = N'" & PA20 & "'
  168. WHERE 流水號 LIKE N'" & PA1 & "' AND 內容 LIKE N'" & PA30 & "' AND 級數 = N'" & PA11 & "'"
  169. CmdSet_For_dr()
  170. End Sub
  171. Friend Sub SQL_資料日期01()
  172. ConnOpen() : SQL1 = "SELECT 流水號 FROM 人事拆帳制薪資報表明細_仁寶 GROUP BY 流水號 ORDER BY 流水號 DESC" : CmdSet_For_dr()
  173. End Sub
  174. Friend Sub SQL_其他表查詢()
  175. ConnOpen() : SQL1 = "SELECT 流水號 FROM 人事拆帳制其他應收付表 WHERE (流水號 LIKE N'" & PA1 & "%')" : CmdSet_For_dr()
  176. End Sub
  177. Friend Sub SQL_其他表_新增()
  178. ConnOpen()
  179. SQL1 = "INSERT INTO 人事拆帳制其他應收付表 (流水號, 姓名, A01, A02, A03, A04, A05, A06, A07, A08, A09, A10, A11, A12, B01, B02, B03, B04, B05, B06,
  180. B07, B08, B09, B10, B11, B12, C01, 其他) VALUES " & SQL2
  181. CmdSet_For_dr()
  182. End Sub
  183. Friend Sub SQL_其他表_修改()
  184. ConnOpen() : SQL1 = "UPDATE 人事拆帳制其他應收付表 SET " & SQL2 : CmdSet_For_dr()
  185. End Sub
  186. End Module