目前我已經用如下陳述句分別得到不同表單,請問如何能合并成一個總的表?
1、作業日加班
程式代碼:
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\考勤.mdb;Persist Security Info=False"
Adodc2.RecordSource = "SELECT 序號,姓名,SUM(加班小計) as 作業日加班 FROM 考勤 WHERE (right(星期,1)<>'六' and right(星期,1)<>'日') GROUP BY 序號,姓名"
Adodc2.Refresh
Set DataGrid2.DataSource = Adodc2

2、雙休日加班
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\考勤.mdb;Persist Security Info=False"
Adodc2.RecordSource = "SELECT 序號,姓名,SUM(加班小計) as 雙休加班 FROM 考勤 WHERE right(星期,1)='六' or right(星期,1)='日' GROUP BY 序號,姓名"
Adodc2.Refresh
Set DataGrid2.DataSource = Adodc2

3、統計表
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\考勤.mdb;Persist Security Info=False"
Adodc2.RecordSource = "SELECT 序號,姓名,SUM(加班小計) as 加班小計,SUM(休假) as 休假,SUM(早班時間) as 早班時間,SUM(中班時間) as 中班時間,SUM(夜班時間) as 夜班時間 FROM 考勤 GROUP BY 序號,姓名"
Adodc2.Refresh
Set DataGrid2.DataSource = Adodc2

現在,想把這幾張表合成一張表,如下圖所示(不好意思,是畫圖拼接出來的):

請問,用什么陳述句,怎樣寫法,才能合并出上面這張表呢?
或者說,如何將以上的陳述句合并寫,直接生成上面這張表呢?
懇求版主和路過的壇友在百忙中抽出點時間幫幫我,謝謝!
uj5u.com熱心網友回復:
懇求版主和路過的壇友在百忙中抽出點時間幫幫我,謝謝!uj5u.com熱心網友回復:
你的三個表使用的是同一個資料表,而且作業日加班、雙休日加班的條件陳述句有沖突,因此想使用原來的資料表生成一個表恐怕不可能。既然能夠生成 作業日加班、雙休日加班 及 統計表,將生成的這三個表合并成一個資料表,就解決問題了。
uj5u.com熱心網友回復:
只有SQL陳述句,不知道符合不符合你的要求。還有個疑問,你的那個序號是干什么的?類似于工號?SELECT C.序號, C.姓名, 加班合計, 休假合計, 早班合計, 中班合計, 夜班合計, 作業日加班, 雙休加班
FROM(
SELECT A.序號, A.姓名, 加班合計, 休假合計, 早班合計, 中班合計, 夜班合計, 作業日加班
FROM (SELECT 序號, 姓名, SUM(加班小計) AS 加班合計, SUM(休假) AS 休假合計, SUM(早班時間) AS 早班合計, SUM(中班時間) AS 中班合計, SUM(夜班時間) AS 夜班合計 FROM 考勤 GROUP BY 序號, 姓名) AS A LEFT JOIN (SELECT 序號, 姓名, SUM(加班小計) AS 作業日加班 FROM 考勤 WHERE (right(星期,1)<>'六' and right(星期,1)<>'日') GROUP BY 序號, 姓名) AS B ON (A.序號=B.序號) AND (A.姓名=B.姓名)
) AS C
LEFT JOIN (SELECT 序號, 姓名, SUM(加班小計) AS 雙休加班 FROM 考勤 WHERE right(星期,1)='六' or right(星期,1)='日'GROUP BY 序號, 姓名) AS D ON (C.序號=D.序號) AND (C.姓名=D.姓名)
uj5u.com熱心網友回復:
SELECT C.序號, C.姓名, 加班合計, 休假合計, 早班合計, 中班合計, 夜班合計, 作業日加班, 雙休加班
FROM(
SELECT A.序號, A.姓名, 加班合計, 休假合計, 早班合計, 中班合計, 夜班合計, 作業日加班
FROM (SELECT 序號, 姓名, SUM(加班小計) AS 加班合計, SUM(休假) AS 休假合計, SUM(早班時間) AS 早班合計, SUM(中班時間) AS 中班合計, SUM(夜班時間) AS 夜班合計 FROM 考勤 GROUP BY 序號, 姓名) AS A LEFT JOIN (SELECT 序號, 姓名, SUM(加班小計) AS 作業日加班 FROM 考勤 WHERE (right(星期,1)<>'六' and right(星期,1)<>'日') GROUP BY 序號, 姓名) AS B ON (A.序號=B.序號) AND (A.姓名=B.姓名)
) AS C
LEFT JOIN (SELECT 序號, 姓名, SUM(加班小計) AS 雙休加班 FROM 考勤 WHERE right(星期,1)='六' or right(星期,1)='日'GROUP BY 序號, 姓名) AS D ON (C.序號=D.序號) AND (C.姓名=D.姓名)
我已經執行過了,不報錯
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/38688.html
上一篇:VB 修改密碼問題 急急急!!
