ขอความช่วยเหลือครับ
กระทู้เก่าบอร์ด อ.Yeadram

 968   6
URL.หัวข้อ / URL
ขอความช่วยเหลือครับ

ผมต้องการ update ราคาสินค้าที่ส่งมาใหม่ทุกเดือน ครับ แต่ข้อมูลของผมจะมีจำนวนมากกว่าของที่ส่งมาให้ใหม่ครับ เช่น
file ของผม
สินค้า     ราคา
A              10
B              15
C             250
D             350
E              250

File Update
สินค้า     ราคา
A              15
B              25
C             220
F              23

ผมต้องการจะรวมตาราง 2 ตาราง โดยยังมีข้อมูล File เก่า แต่มีราคาใหม่ และก็ข้อมูลของตารางใหม่ด้วยครับ
ทำยังไงดีครับ

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

1 @R12558
ขอผ่านครับ คำถามยากมาก ไม่รู้จะตอบอย่างไร
2 @R12559
ความต้องการใช่แบบนี้รึเปล่า
สินค้า     ราคา
A              15
B              25
C             220
D             350
E              250
F              23
3 @R12560
ใช่ครับ
4 @R12562
ถ้ามีแค่ตารางเดียวให้ใช้วิธีสร้างคิวรี่ สองคิวรี่
ถ้าต้องทำหลายๆ ตารางและทำบ่อยๆ access มีฟังก์ชั่นช่วยงานอย่างนี้อยู่แล้วครับ ลองดูคำสั่งในกลุ่ม อรรถประโยชน์ของฐานข้อมูลดูนะครับ

มาดูวิธีแรกกันดีกว่า ( 2 คิวรี่)
สมมติตาราง A คือตารางต้นฉบับ
ตาราง B คือตารางที่มีข้อมูลอัพเดต

1 คิวรี่ข้อมูลจากตาราง B เลือกเฉพาะเรคคอร์ดที่ไม่ซ้ำกับ A เอาข้อมูลที่ได้ Append เข้าไปที่ A (ต้องมีการใช้ Right Join)
2 สั่งอัพเดตตาราง A เซ็ตราคา ให้เท่ากับ ราคาของ B (อาจต้องใช้ Right Join)
5 @R12567
ขอแก้ตัวครับเนื่องจาก เมื่อวาน จิตตก ไปหน่อย

คือคำถามของคุณอาจจะกว้างไปหน่อย (สำหรับผม) ไม่แน่ใจว่าติดปัญหาที่การนำเข้าข้อมูลของ file หรือ ไม่รู้วิธี update

ถ้าเป็นเรื่องวิธีการ update ข้อมูล โดยใช้ query หลักการคิดจะเป็นดังนี้ครับ
1. ข้อมูลที่ซ้ำกัน ให้ใช้ของใหม่ - ใช้คำสั้ง Update ... Where ที่ key ตรงกัน
2. ข้อมูลที่ไม่ซ้ำกัน = ข้อมูลใหม่ - ใช้คำสั่ง Insert Into ... Where ...
ตรงนี้ทำได้หลายวิธี
2.1 ใช้ [ใหม่] Left Joint [เก่า] On ... Where key ของ [เก่า] Is Null
2.2 Form [ใหม่] Where Key ของ [ใหม่] Not In (Select Key ของ [เก่า] ...
2.3 ไม่ต้อง Where เลยครับ ถ้ามีการกำหนด Key ที่ห้ามซ้ำอยู่แล้ว ข้อมูลใน file ใหม่ ที่ซ้ำมันจะเข้าไม่ได้อยู่แล้ว

แนะนำให้ทำ 1. ก่อน 2. เพราะ ข้อมูลน้อยกว่า (เพราะยังไม่มีของใหม่เข้าไปรวม) จะทำให้ใช้ เวลา น้อยกว่า
6 @R12577
ขอบคุณทุกท่านครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2739s