กระทู้เก่าบอร์ด อ.Yeadram
3,368 11
URL.หัวข้อ /
URL
Query ลบ ข้อมูล
ผมใช้ Query wizard เช็ค duplicates ข้อมูล แล้วจะ นำข้อมูล จาก Query duplicates ไปอ้างอิงลบข้อมูลจากตาราง data หลัก ได้ไหมครับ
11 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R20764
ขอบคุณอาจาร์นะครับ
แต่พอผมนำไปทดลองใส่ แล้ว
Code ดังนี้ ครับ
delete * from A_DATA where exists ( select * from duplicates where duplicates.[17 Field] = A_DATA.[17]);
โปรแกรมให้กรอก parameter ของตาราง A_DATA ครับ
แต่พอผมนำไปทดลองใส่ แล้ว
Code ดังนี้ ครับ
delete * from A_DATA where exists ( select * from duplicates where duplicates.[17 Field] = A_DATA.[17]);
โปรแกรมให้กรอก parameter ของตาราง A_DATA ครับ
3 @R20765
แน่ใจหรือว่า ฟิลด์ใน A_DATA ชื่อว่า 17 เฉยๆ
อีกอย่างครับ เปลี่ยนจาก select * เป็น select ฟิลด์อะไร(สักฟิลด์เดียวก็พอ)จาก duplicates
อีกอย่างครับ เปลี่ยนจาก select * เป็น select ฟิลด์อะไร(สักฟิลด์เดียวก็พอ)จาก duplicates
4 @R20766
ใช่ครับ ฟิลด์ชื่อ 17 เฉยๆ ครับ
ลองเปลี่ยนแล้วก็เหมือนเดิมเลยครับ
ลองเปลี่ยนแล้วก็เหมือนเดิมเลยครับ
5 @R20767
สงสัยทำไมไม่ได้ ... ลองเปลี่ยนจาก A_DATA.[17] เป็น A_DATA.17 ดูครับ
6 @R20769
ขอบคุณอาจาร์ยที่ให้ความช่วยเหลือนะครับ
ผมลองเปลี่ยนหลายๆ รอบแล้วก็ขึ้นแบบดังรุปนะครับ
อันนี้รูป table กับข้อมูลใน Query duplicates นะครับ
ผมลองเปลี่ยนหลายๆ รอบแล้วก็ขึ้นแบบดังรุปนะครับ
อันนี้รูป table กับข้อมูลใน Query duplicates นะครับ
7 @R20770
**edit รูปแรก ผิด นะครับ
8 @R20771
ลองส่งภาพโครงสร้างของ A_DATA ใน Design View มาให้ดูหน่อยครับ
อีกอย่าง ลองเช็คว่าถ้าสร้างอีกคิวรี่ มีคำสั่ง select a_data.17 from a_data แล้วรันคิวรี่ มันจะยังขึ้นถามเหมือนกันหรือไม่ ถ้าใช่ เชื่อว่าฟิลด์ในเทเบิลไม่ได้ชื่อ "17" ล้วนๆแล้วหล่ะครับ
อีกอย่าง ลองเช็คว่าถ้าสร้างอีกคิวรี่ มีคำสั่ง select a_data.17 from a_data แล้วรันคิวรี่ มันจะยังขึ้นถามเหมือนกันหรือไม่ ถ้าใช่ เชื่อว่าฟิลด์ในเทเบิลไม่ได้ชื่อ "17" ล้วนๆแล้วหล่ะครับ
9 @R20772
A_DATA ข้อมูลตามรูปนะครับ
ส่วนคำสั่งที่อาจาร์ยให้ลองรัน ขึ้นปกตินะครับ
ส่วนคำสั่งที่อาจาร์ยให้ลองรัน ขึ้นปกตินะครับ
10 @R20773
ถึงจุดนี้ก็ยังไม่ทราบเหมือนกันว่าผิดตรงไหน
ใน DELETE statement ที่ให้ไป ลองเปลี่ยนจาก 17 เป็น 14 ดูครับ ไม่ต้องสั่ง RUN นะครับ สั่งแค่ VIEW ก็พอ ซึ่งมันจะไม่ได้ไปลบอะไร อยากรู้ว่าจะถามอีกหรือไม่
ไม่งั้นก็เปลี่ยนชื่อฟิลด์ในเทเบิล จาก 17 ไปเป็นอย่างอื่นก่อน แล้วลองรันดู
ใน DELETE statement ที่ให้ไป ลองเปลี่ยนจาก 17 เป็น 14 ดูครับ ไม่ต้องสั่ง RUN นะครับ สั่งแค่ VIEW ก็พอ ซึ่งมันจะไม่ได้ไปลบอะไร อยากรู้ว่าจะถามอีกหรือไม่
ไม่งั้นก็เปลี่ยนชื่อฟิลด์ในเทเบิล จาก 17 ไปเป็นอย่างอื่นก่อน แล้วลองรันดู
11 @R20779
ขอบคุณ อาจาร์ย นะครับ ยังไง ผมขอนำไปทดลองก่อนะครับ
Time: 0.3552s
delete * from [ตารางหลัก] where exists ( select * from [Query duplicate] where [key field ของ Query duplicate] = [key field ของตารางหลัก] )
ก่อนทำให้สำรองฐานข้อมูลไว้ก่อน เผื่อผิดพลาดจะได้เอาฐานข้อมูลเดิมกลับมาใช้ได้