※ 引述《retsamsu (haha)》之銘言:
: ※ 引述《camille168 (凱凱)》之銘言:
: : 各位大大好
: : 我現在遇到了一個查詢的問題
: : 我想要查每個月各個組別請假的時數
: : 我現在有個問題就是
: : 如果有一個組別當月沒有請假ꄊ: : 是不會跑出那個組別的
: : 因為只有在請假時才會輸入資料到資料表裡
: : 所以在查時,就會面臨這個月若這組沒請假就不會顯示他的組別
: : 可是我想要每個組別都會跑出來
: : 而沒有請假的組別,他的請假時數,會自己跑出0
: : 雖然自己可以在資料表上KEY當月沒請假的組別,請假時數0
: : 但這樣的做法還蠻不好的
: : 想問問還有沒有什麼其他的方法可以用
: : 順便給一下我資料表裡面的東西
: : 日期、姓名、假別、開始時間、結束時間、時數、組別、備註
: : 希望有大大可以解救我>"<
: UNION 沒請假的組別
: union 的範例 http://www.fabalou.com/Access/Queries/unionquery.asp
你好!謝謝你的回覆
我有試了一下
但還是不行說
我想說這個合併語法
是不是要在二個資料表都有一樣欄位才可以合併?
因為我是用「請假」和「組別」合併起來的
請假有的欄位就是上面那個
日期、姓名、假別、開始時間、結束時間、時數、組別、備註
但組別的欄位只有
組別、人數
我要出現的是日期(年、月分開,以月來查詢當月請假的記錄)
組別(輸入組別來查詢那組的資料)
人數(組別的人數)
總假別時數(那組當月請假的總時數)
各假別時數(假別個別算,事、病、喪、婚…)
這些都可以解決
但就是沒辦法解決讓它出現當月沒請假的組別資料
這是我原本的程式
------------------------------------------------
SELECT
Year([日期]) AS 年份,
Month([日期]) AS 月,
[上班天數]*[人數]*8 AS 應出勤總工時,
[41_group].組別, [41_group].人數,
Sum((IIf(IsNull([假別]),0,[時數]))) AS 請假,
Sum(IIf([假別] Like "公假",[時數],0)) AS 公假,
Sum(IIf([假別] Like "事假",[時數],0)) AS 事假,
Sum(IIf([假別] Like "病假",[時數],0)) AS 病假,
Sum(IIf([假別] Like "喪假",[時數],0)) AS 喪假,
Sum(IIf([假別] Like "婚假",[時數],0)) AS 婚假,
Sum(IIf([假別] Like "陪產假",[時數],0)) AS 陪產假
FROM 42_workday, 41_group
INNER JOIN 24_absencenote
ON [41_group].組別 = [24_absencenote].組別
GROUP BY Year([日期]), Month([日期]),
[上班天數]*[人數]*8, [41_group].組別,
[41_group].人數, [42_workday].月份
HAVING
(((Year([日期]))=Year(Date())) AND
((Month([日期]))=[輸入月份]) AND
(([41_group].組別) Like [請輸入組別] & "*") AND
(([42_workday].月份)=[輸入月份]));
---------------------------------------------------
我加了union後,它是說
「在所選的兩個資料表中的欄數或聯合查詢的欄數不相符」
那我是不是要再建一個資料表是和「請假」一樣的資料表
然後把裡面的值先設好,(把組別和時數0,key上)
再用一次是不是就有辦法合併?
然後出現我想到的資料?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.75.220.244
※ 編輯: camille168 來自: 211.75.220.244 (11/28 13:58)
※ 編輯: camille168 來自: 211.75.220.244 (11/28 14:11)