ต้องการเขียน Query โดยการเอาเฉพาะ Record ที่มีข้อมูลวันล่าสุดของพนักงานแต่ละคน



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

07 ส.ค. 64 , 17:24:20
อ่าน 246 ครั้ง

Tatchawin

สวัสดีครับ ต้องการปรึกษาทุกท่านเรื่องการเขียน Query ครับ ผมมีข้อมูลดังนี้ (ดูรายละเอียดได้จากไฟล์ .rar ที่ผมแนบมานะครับ)

Background ข้อมูล
  • เป็นข้อมูลตรวจสุขภาพพนง.ย้อนหลัง ปี 2018-2020
  • พนง.บางคนมีการตรวจครั้งเดียว บางคนมีการตรวจหลายครั้ง
  • ระหว่างปี 2018-2020 จะมีพนง.บางคนมีการเปลี่ยนชื่อ

ความต้องการ
  • ต้องการสร้าง Master Table โดยการ Calculate Table หรือเขียน Query ขึ้นมาใหม่ เอาข้อมูลเฉพาะคอลัมน์ RecordID, PersonID(PrimaryKey), Prefix, Name, Surname, Year, Note(Highlight สีฟ้าในตาราง Sheet2)
  • ให้ Query Filter เอาเฉพาะข้อมูลปีล่าสุดของพนง.แต่ละคนที่มีข้อมูลเสมอ แม้มีการรีเฟรชข้อมูลเข้า Data Model มาใหม่(เพราะข้อมูลปีก่อนๆ พนง.บางคนยังใช้ชื่อเดิม)

ผลลัพธ์ที่ได้จะเป็นไปตามภาพด้านล่างนี้ครับ ซึ่งผมลองเขียน Query เองแล้วไม่ประสบความสำเร็จเลย จึงอยากรบกวนทุกท่านช่วยแสดงให้ดูหน่อยนะครับ

สงสัยตรงไหนถามได้นะครับผม ขอบคุณล่วงหน้าทุกท่านครับผม


 

07 ส.ค. 64 , 21:11:19
ตอบกลับ #1

OddyWriter

ตัวอย่างครับ
วิกฤติโควิดทำให้ร้อนเงิน
ใครอยากจ้างทำฐานข้อมูล สอนวางระบบฐานข้อมูล Excel/ Access/ VBA Excel/ VBA Access/ SQL Server/ Database Design
แม้กระทั่งดูดวง ก็ติดต่อได้นะครับ
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

08 ส.ค. 64 , 00:29:49
ตอบกลับ #2

Tatchawin

ขอบคุณสำหรับคำตอบครับ คุณ OddyWriter

ผมลองดูไฟล์ที่คุณ OddyWriter ส่งมาแล้วครับ ผมลองลาก Field อื่นๆเพื่อให้ได้ผลลัพธ์ตามภาพด้านล่าง ปรากฎว่ามันไม่ได้ผลลัพธ์ตามต้องการเลย
โดยผมลองแล้วทั้งเลือกเป็น Last หรือ Max ใน Field อื่นๆ ตอนทำ Query ครับ น่าจะต้องเขียน Criteria การกรองด้วยรึเปล่าไม่แน่ใจ
ทั้งนี้ ให้สังเกตุที่พนง. PersonID = 900017 นะครับ เนื่องจากมีการเปลี่ยนชื่อและนามสกุล ผลลัพธ์ที่ต้องการคือชื่อ-สกุลล่าสุดของเขาที่เปลี่ยนมา คือ "สินทวีชัย หทัยรัตนกุล" ซึ่งถูกบันทึก Record ในวันที่ 01/10/2020 (วันสุดท้ายที่มี Record ของพนง.ท่านนี้)

หมายเหตุ: ผมขอแนบไฟล์ DataSource ที่เป็น .rar มาใหม่นะครับ เนื่องจากที่ DataSource ของ พนง. บางคน PersonID ผิดครับ โปรดใช้ไฟล์นี้ทดแทนครับ

« แก้ไขครั้งสุดท้าย: 08 ส.ค. 64 , 00:36:10 โดย Tatchawin »

 

08 ส.ค. 64 , 08:20:59
ตอบกลับ #3

OddyWriter

คิวรีที่สร้างให้ มันคือ Total Query

คุณต้องไปเอาไปสร้าง Select Query ต่อ โดยเชื่อมกับตารางข้อมูลแล้วดึงข้อมูลอื่นๆ มาแสดงครับ

สำหรับการเปลี่ยนชื่อนามสกุล คุณต้องแยกข้อมูลชื่อออกมาเป็นอีกตารางครับ

คือในระบบฐานข้อมูลเกี่ยวกับชื่อคนนั้น 1 คน ต้องมี 1 เรคอร์ดล่าสุดเท่านั้น ถ้าต้องการบันทึกชื่อเดิมกับชื่อใหม่ ต้องแยกเป็นอีก 1 ตารางครับ
วิกฤติโควิดทำให้ร้อนเงิน
ใครอยากจ้างทำฐานข้อมูล สอนวางระบบฐานข้อมูล Excel/ Access/ VBA Excel/ VBA Access/ SQL Server/ Database Design
แม้กระทั่งดูดวง ก็ติดต่อได้นะครับ
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

08 ส.ค. 64 , 10:13:49
ตอบกลับ #4

Tatchawin

คิวรีที่สร้างให้ มันคือ Total Query

คุณต้องไปเอาไปสร้าง Select Query ต่อ โดยเชื่อมกับตารางข้อมูลแล้วดึงข้อมูลอื่นๆ มาแสดงครับ

สำหรับการเปลี่ยนชื่อนามสกุล คุณต้องแยกข้อมูลชื่อออกมาเป็นอีกตารางครับ

คือในระบบฐานข้อมูลเกี่ยวกับชื่อคนนั้น 1 คน ต้องมี 1 เรคอร์ดล่าสุดเท่านั้น ถ้าต้องการบันทึกชื่อเดิมกับชื่อใหม่ ต้องแยกเป็นอีก 1 ตารางครับ

อ่อ ผมเข้าใจถูกไหมครับ ต้องเอา Query1(ที่สร้างใหม่) มาจอยกับตาราง tblCheckUp (ที่มีอยู่เดิม) อีกที เกิดเปิด Query ใหม่(Query 2) แบบนี้ไหมครับ

 

08 ส.ค. 64 , 10:56:32
ตอบกลับ #5

OddyWriter

ใช่ครับ แต่ทั้งนี้คุณต้องแยกชื่อพนง.เป็นอีกตารางด้วย โดย 1 คนต้องมี 1 ชื่อล่าสุด ในระบบเท่านั้น

ยกเว้นแต่ว่าคุณสนใจเรื่องการเปลี่ยนชื่อ ก็ต้องมีตารางเก็บข้อมูลการเปลี่ยนชื่อด้วย
วิกฤติโควิดทำให้ร้อนเงิน
ใครอยากจ้างทำฐานข้อมูล สอนวางระบบฐานข้อมูล Excel/ Access/ VBA Excel/ VBA Access/ SQL Server/ Database Design
แม้กระทั่งดูดวง ก็ติดต่อได้นะครับ
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

08 ส.ค. 64 , 11:40:58
ตอบกลับ #6

Tatchawin

ใช่ครับ แต่ทั้งนี้คุณต้องแยกชื่อพนง.เป็นอีกตารางด้วย โดย 1 คนต้องมี 1 ชื่อล่าสุด ในระบบเท่านั้น

ยกเว้นแต่ว่าคุณสนใจเรื่องการเปลี่ยนชื่อ ก็ต้องมีตารางเก็บข้อมูลการเปลี่ยนชื่อด้วย

การแยกตาราง ทำตามภาพนี้ ผมเข้าใจถูกต้องไหมครับ ถ้าจะอัพเดทชื่อพนง.ต้องอัพที่ tblพนักงาน ซึ่งเป็นตาราง Master ส่วน tblCheckup กับ tblเปลี่ยนชื่อพนักงาน เป็น ตาราง Transaction

ถ้าผมเข้าใจผิด และท่านสะดวก รบกวนทำใน MS Access ให้ดูเป็นตัวอย่างด้วยได้ไหมครับ

ขอบคุณล่วงหน้านะครับ

 

08 ส.ค. 64 , 11:46:28
ตอบกลับ #7

OddyWriter

ประมาณนี้ ถูกต้องแล้วครับ
วิกฤติโควิดทำให้ร้อนเงิน
ใครอยากจ้างทำฐานข้อมูล สอนวางระบบฐานข้อมูล Excel/ Access/ VBA Excel/ VBA Access/ SQL Server/ Database Design
แม้กระทั่งดูดวง ก็ติดต่อได้นะครับ
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin


บอร์ดเรียนรู้ Access สำหรับคนไทย