หายอดพักร้อนคงเหลือในแต่ละปี
กระทู้เก่าบอร์ด อ.Yeadram

 1,890   4
URL.หัวข้อ / URL
หายอดพักร้อนคงเหลือในแต่ละปี

เรียนท่านผู้รู้ทุกท่านครับผมต้องการหาวันลาพักร้อนคงเหลือของบุคคลในแต่ละปีโดยมีข้อมูลที่จัดเก็บแบบนี้ครับ
ตาราง tblDayOff
ปี     รหัสบุคคล     วันที่เริ่ม          วันที่สิ้นสุด     จำนวนวัน     ประเภทลา
2553 1000          12/04/2553          13/04/2553            2          พักร้อน
2553 1000          03/05/2553           04/05/2553     2          พักร้อน
2553 1000          16/06/2553             16/06/2553      1          ป่วย
2553 1001      08/04/2553     08/04/2553     1          ป่วย
2553 1001     13/10/2553     15/10/2553     3          พักร้อน
2553 1001     23/12/2553     23/12/2553      1          พักร้อน
2554 1000     03/03/2554     04/03/2554     2          พักร้อน
2554 1000     01/05/2554     01/05/2554     1          พักร้อน
2554 1000     07/04/2554     07/04/2554     1          ป่วย
2554 1001     25/03/2554     26/03/2554     2          พักร้อน
2554 1001     27/06/2554     28/06/2554      2          พักร้อน
2554 1001     08/08/2554     08/08/2554      1          ป่วย

ตาราง tblPersonal
รหัสบุคคล         พักร้อนสะสม
1000               10
1001                 5
ในแต่ละปีได้โควตาพักร้อนเพิ่ม 10 วัน
ปี 2553 รหัสบุคคล 1000 มีพักร้อนสะสม 10 วัน รวมกับโควตาที่ได้รับ 10 วัน รวมเป็น 20 วัน ลาพักร้อนไปแล้ว 4 วัน คงเหลือพักร้อน 16 วัน
ปี 2554 รหัสบุคคล 1000 มีพักร้อนสะสมยกมาจากปี 2553 คือ16 วัน รวมกับโควตาที่ได้รับ 10 วัน รวมเป็น 26 วัน ลาพักร้อนไปแล้ว 3 วัน คงเหลือพักร้อน 23 วัน
ปี 2553 รหัสบุคคล 1001 มีพักร้อนสะสม 5 วัน รวมกับโควตาที่ได้รับ 10 วัน รวมเป็น 15 วัน ลาพักร้อนไปแล้ว 4 วัน คงเหลือพักร้อน 11 วัน
ปี 2554 รหัสบุคคล 1001 มีพักร้อนสะสมยกมาจากปี 2553 คือ11 วัน รวมกับโควตาที่ได้รับ 10 วัน รวมเป็น 21 วัน ลาพักร้อนไปแล้ว 4 วัน คงเหลือพักร้อน 17 วัน
พักร้อนคงเหลือของบุคคลในแต่ละปีหาได้จาก (พักร้อนสะสม+ โคตาที่ได้รับ) – (จำนวนวันพักร้อน)
สิ่งที่ต้องการคือ ทำคิวรี่หรือรายงานให้มีการเรียงข้อมูลแบบนี้
รหัสบุคคล          ปี      พักร้อน           ป่วย          คงเหลือพักร้อน
1000             2553          4          1           16
1000                  2554          3          1           23
1001          2553          4          1           11
1001          2554          4          1          17
ตรงฟิลด์คงเหลือต้องเขียนโค๊ดยังไงครับดีครับ ขอคำแนะนำด้วยครับ

4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R10731
http://www.thai-access.com/yeadram_view.php?topic_id=1135
2 @R10812
ลองศึกษาตามลิงค์ที่ให้มายังไม่ได้เลยครับ ดูเหมือนว่าเจ้าของกระทู้ลิงค์นั้นคงจะยังไม่ได้เหมือนกัน ท่านอาจารย์ทั้งหลายพอจะทำให้แนวทางแบบนี้สำเร็จบ้างไหมครับ
3 @R10826
สร้างคิวรี่ ที่ต้องใช้ทั้งหมด 5 คิวรี่ครับ เพื่อให้ได้ผลลัพธ์ที่คุณต้องการ

คิวรี่ที่ 1 เลือกใช้ทั้ง 2 ตาราง กำหนดฟิลด์ทั้งหมดของทั้งสองตารางลงไป ในคิวรี่นี้ให้กำหนดเงื่อนไขที่ ฟิลด์ประเภทการลา ให้แสดงเฉพาะ "พักร้อน" และเพิ่มฟิลด์ตั้งชื่อฟิลด์พิ่มไป คือ รวมพักร้อน:จำนวนวัน และ sum ฟิลด์นี้ซะ

คิวรี่ที่ 2 เลือกใช้ทั้ง 2 ตาราง กำหนดฟิลด์ทั้งหมดของทั้งสองตารางลงไป ในคิวรี่นี้ให้กำหนดเงื่อนไขที่ ฟิลด์ประเภทการลา ให้แสดงเฉพาะ "ป่วย" และเพิ่มฟิลด์ตั้งชื่อฟิลด์พิ่มไป คือ รวมป่วย:จำนวนวัน และ sum ฟิลด์นี้ซะ

คิวรี่ที่ 3 เลือกข้อมูลจากแบบสอบถามที่พึ่งสร้างคือ คิวรี่ที่ 1 เลือกเฉพาะฟิลด์ ปี รหัส พักร้อน และทำการ Sum ฟิลด์ รวมพักร้อน ที่ตอนแรกคุณสร้างขึ้น

คิวรี่ที่ 4 เลือกข้อมูลจากแบบสอบถามที่พึ่งสร้างคือ คิวรี่ที่ 2 เลือกเฉพาะฟิลด์ ปี รหัส ป่วย และทำการ Sum ฟิลด์ รวมป่วย ที่ตอนแรกคุณสร้างขึ้น

ทีนี้เหลือตารางนี้ที่คุณจะมาสรุปคงเหลือล่ะ
คิวรี่ที่ 5 เลือกข้อมูลจากแบบสอบถามที่พึ่งสร้างคือ คิวรี่ที่ 3 และคิวรี่ที่ 4 และข้อมูลจากตารางtblDayOff กำหนดความสัมพันธ์ คิวรี่ 3 และ 4 ปี คู่ ปี รหัส คู่ รหัส และ รหัสจากคิวรี่ 3 คู่ รหัสจาก ตารางtblPersonal
เลือกฟิลด์ รหัส ,ปี และ ฟิลด์sumofรวมพักร้อน จากคิวรี่ 3 ที่สร้างไว้ และ ก็เลือกฟิลด์ Sumofรวมป่วย จากคิวรี่ 4 ที่สร้างไว้ จากนั้น เลือกฟิลด์พักร้อนสะสมจากตารางที่คุณสร้างไว้ และก็เพิ่มฟิลด์เพื่อคำณวนวันลาพักร้อนคงเหลือ พิมพ์ไปว่า คงเหลือ:([พักร้อนสะสม]+10)-[sumofรวมพักร้อน]
ลองดูครับ ละเอียดไปมั๊ยครับ คือผมไม่ได้เก่งอธิบายแต่อยากช่วยครับพอทำได้ครับ ลองดูครับ ได้ไม่ได้บอกด้วย




4 @R10949
ขอบคุณครับท่านสมควร ผมได้ทดลองดูแล้วยังไม่ได้เลยครับช่วยดูไฟล์ให้หน่อยครับว่าต้องปรับแก้ตรงไหนอย่างไรดี ผมส่งไปไว้ที่เมลล์กลางแล้วครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3796s