กระทู้เก่าบอร์ด อ.Yeadram
7,768 11
URL.หัวข้อ /
URL
การทำ Query หาจำนวนวัน ที่ตรวจสอบวันหยุด
SELECT DISTINCT JobID, RecivedDate, CloseDate, DATEDIFF("d",Work.RecivedDate, Work.CloseDate) AS Duration
FROM [Work], SpeicalDate;
ตาม Code ใน Query สามารถหาจำนวนวัน ได้แล้ว แต่จะเขียนฟังก์ชันอย่างไรเพื่อตรวจสอบวันหยุด เสาร์ อาทิตย์ ส่วนวันหยุดนักขัตฤกษ์ มี Table แล้วครับ
ขอคำแนะนำด้วยนะครับ
ขอบคุณมากๆนะครับ
งัยส่งเมล์ theksaint@hotmail.com
FROM [Work], SpeicalDate;
ตาม Code ใน Query สามารถหาจำนวนวัน ได้แล้ว แต่จะเขียนฟังก์ชันอย่างไรเพื่อตรวจสอบวันหยุด เสาร์ อาทิตย์ ส่วนวันหยุดนักขัตฤกษ์ มี Table แล้วครับ
ขอคำแนะนำด้วยนะครับ
ขอบคุณมากๆนะครับ
งัยส่งเมล์ theksaint@hotmail.com
11 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R01486
เพิ่มเติมการ Run Query ข้างต้นครับ
2 @R01487
weekday()
จะบอกได้ว่า วันนั้นเป็นวันอะไรครับ
มันคืนค่ามาเป็น long 1-7 เท่านั้น
1 = อาทิตย์ หรือจันทร์ แล้วแต่ตั้งค่าในอากิวเมนต์สุดท้ายครับ
จะบอกได้ว่า วันนั้นเป็นวันอะไรครับ
มันคืนค่ามาเป็น long 1-7 เท่านั้น
1 = อาทิตย์ หรือจันทร์ แล้วแต่ตั้งค่าในอากิวเมนต์สุดท้ายครับ
3 @R01488
ผมต้องเขียนเป็น function แล้วมาใส่ใน query หรือเปล่าครับ แล้วต้องวนลูปใช่มั้ยครับ รบกวนเพิ่มเติม ขอบคุณครับ
4 @R01489
RecieveDate คือวันอะไรจากตาราง work ใช่ไหม
ตาราง SpecialDate มีฟิลด์อะไรที่ต้องใช้เหรอครับ ทำไมถึงเอามันเข้ามาด้วย โดยไม่ได้เชื่อมกับตาราง work
เดี๋ยวมาต่อครับ สายๆ หน่อยนะ ตอนนี้เคลียร์ธุระช่วงเช้าก่อนครับ
ตาราง SpecialDate มีฟิลด์อะไรที่ต้องใช้เหรอครับ ทำไมถึงเอามันเข้ามาด้วย โดยไม่ได้เชื่อมกับตาราง work
เดี๋ยวมาต่อครับ สายๆ หน่อยนะ ตอนนี้เคลียร์ธุระช่วงเช้าก่อนครับ
5 @R01490
JobID, RecivedDate, CloseDate อยู่ใน Table Work ครับ
ส่วน Table SpecialDate มี SDate ที่เก็บวันหยุดนักขัตฤกษ์ ครับ
เพื่อจะคำนวณจำนวนวัน
(Closedate-RecivedDate)-Holiday(ตัวแปรที่เก็บจำนวนเสาร์และอาทิตย์ ที่อยู่ในช่วงเวลาที่กรอกไว้)-SDate(ฟิลด์ที่เก็บวันหยุดนักขัตฤกษ์)
ขอบคุณมากๆนะครับ
ส่วน Table SpecialDate มี SDate ที่เก็บวันหยุดนักขัตฤกษ์ ครับ
เพื่อจะคำนวณจำนวนวัน
(Closedate-RecivedDate)-Holiday(ตัวแปรที่เก็บจำนวนเสาร์และอาทิตย์ ที่อยู่ในช่วงเวลาที่กรอกไว้)-SDate(ฟิลด์ที่เก็บวันหยุดนักขัตฤกษ์)
ขอบคุณมากๆนะครับ
6 @R01491
แฮ่ แฮ่ มึนตึบ เอางี้นะครับ สมมติ นะครับสมมติ
ตาราง SpecialDate มีสองฟิลด์
- SDate (date/time) เก็บวันหยุด เป็น primarykey นับแต่ละเรคคอร์ดเป็น 1 หน่วย
- Description (text) เก็บความหมายหมายของ
สิ่งที่ต้องการเห็นในผลของคิวรี่คือ
- รหัสพนักงาน (JobID - string)
- วันเริ่มต้นจุดตรวจนับ (RecivedDate - date/time)
- วันสิ้นสุดจุดตรวจนับ (CloseDate - date/time)
- นับรวมระยะเวลาตรวจนับ (Duration - long integer)
- วันหยุดงาน หักวันหยุดแล้ว (heBreak - long integer) ให้เขียน sql คิวรี่ดังนี้ ครับ
SELECT JobID, RecivedDate, CloseDate, DATEDIFF("d",RecivedDate, CloseDate) +1 AS Duration , OffDay(RecivedDate,CloseDate) as heBreak
FROM [Work];
อย่าเพิ่งเรียกใช้จนกว่าจะเอานี่ไปวางในโมดูลครับ
ตาราง SpecialDate มีสองฟิลด์
- SDate (date/time) เก็บวันหยุด เป็น primarykey นับแต่ละเรคคอร์ดเป็น 1 หน่วย
- Description (text) เก็บความหมายหมายของ
สิ่งที่ต้องการเห็นในผลของคิวรี่คือ
- รหัสพนักงาน (JobID - string)
- วันเริ่มต้นจุดตรวจนับ (RecivedDate - date/time)
- วันสิ้นสุดจุดตรวจนับ (CloseDate - date/time)
- นับรวมระยะเวลาตรวจนับ (Duration - long integer)
- วันหยุดงาน หักวันหยุดแล้ว (heBreak - long integer) ให้เขียน sql คิวรี่ดังนี้ ครับ
SELECT JobID, RecivedDate, CloseDate, DATEDIFF("d",RecivedDate, CloseDate) +1 AS Duration , OffDay(RecivedDate,CloseDate) as heBreak
FROM [Work];
อย่าเพิ่งเรียกใช้จนกว่าจะเอานี่ไปวางในโมดูลครับ
Function OffDay(ByVal frDate As Date, ByVal toDate As Date) As Long
Dim j As Long
j = 0
Dim xDate As Date
For xDate = frDate To toDate
If Weekday(xDate, vbMonday) > 5 Or _
DCount("SDate", "SpecialDate", "[SDate] = cDate('" & xDate & "')") > 0 _
Then j = j + 1
Next
OffDay = j
End Function
7 @R01492
ขอบคุณอย่างมากครับ เด๋วจะลองไปทำดูนะครับ
8 @R01568
ไปเจอที่นี่มาครับ
http://www.techonthenet.com/access/modules/workdays.php
http://www.techonthenet.com/access/modules/workdays.php
9 @R17879
ผมได้นำวิธีการทำมาปรับใช้ในดาต้าของผมแล้วมานขึ้นข้อความด้านล่างแบบนี้ ต้องแก้ไขอย่างไรบ้างครับ ขอบคุณมากครับ
10 @R17887
รบกวนด้วยนะคับ
11 @R17900
Time: 0.3566s