看板 Database 關於我們 聯絡資訊
※ 引述《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)