กระทู้เก่าบอร์ด อ.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
ตรงฟิลด์คงเหลือต้องเขียนโค๊ดยังไงครับดีครับ ขอคำแนะนำด้วยครับ
ตาราง 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รวมพักร้อน]
ลองดูครับ ละเอียดไปมั๊ยครับ คือผมไม่ได้เก่งอธิบายแต่อยากช่วยครับพอทำได้ครับ ลองดูครับ ได้ไม่ได้บอกด้วย
คิวรี่ที่ 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
ขอบคุณครับท่านสมควร ผมได้ทดลองดูแล้วยังไม่ได้เลยครับช่วยดูไฟล์ให้หน่อยครับว่าต้องปรับแก้ตรงไหนอย่างไรดี ผมส่งไปไว้ที่เมลล์กลางแล้วครับ
Time: 0.3796s