การเรียง Record ตามวันที่เพื่อดึงข้อมูลมาใช้ใน Query


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

19 พ.ย. 62 , 08:06:13
ตอบกลับ #16

Mercury

1. กลับไปที่ภาพที่ 2 ในคำถามแรก วันที่ล่าสุดที่ต้องการคือวันที่เท่าไหร่ และความหมาของคำว่า "ล่าสุด" คืออะไร วันที่มีค่ามากสุดของ Place นั้นๆ หรือ วันที่มีค่ามากสุดก่อนวันปัจจุบันสำหรับ Place นั้นๆ หรืออะไร ?

2. กลับไปภาพที่ 1  ฟิลด์อื่นๆ ยกเว้นฟิลด์ที่เป็นผลรวมจากฟังก์ชั่น Sum  ฟิลด์เหล่านั้นได้มาจากเรคอร์ดเดียวกันกับเรคอร์ดของวันที่ "ล่าสุด" ใช่หรือไม่ หรือได้มาจากไหน ?

3. ฟิลด์ผลรวมจากฟังก์ชั่น Sum  เกิดจากการรวมตั้งแต่วันไหนจนถึงวันไหน ?

ปล. ส่วนใหญ่คุณจะเขียนไม่ชัดเจน

1. ภาพที่ 2 จากสถานที่ AA114 วันที่ล่าสุดที่หมายถึงคือ 31/1/2563 คือเลข 5 ในฟิลด์ Inhouse แต่คิวรี่กลับดึง 10T200000216 มาโชว์แทน
2. ต้องการให้เป็นวันที่ล่าสุดค่ะ แต่ลองใช้ฟิลด์ Last แล้วคิวรี่ดึงตัวที่คีย์เข้าไปล่าสุด ถึงแม้จะไม่ใช่วันที่ล่าสุด
3. เป็นผลรวมของสถานที่นั้นๆ ซึ่งถ้ามีการเปลี่ยนเป็นรหัสสินค้าตัวใหม่ สินค้าที่อยู่ก่อนหน้าจะต้องถูกจ่ายออกจนหมดก่อน
« แก้ไขครั้งสุดท้าย: 19 พ.ย. 62 , 08:11:37 โดย Mercury »
:dizzy:
 

19 พ.ย. 62 , 11:38:03
ตอบกลับ #17

สันติสุข

เปลี่ยนโหมดคิวรี่จาก Design View ไปเป็น SQL View แล้วเขียนคำสั่งนี้ลงไปแทนครับ

select T1.*, (select sum(T3.Inboxes) from [In] as T3 where T3.place = T1.place) as SumOfBoxin
from [In] as T1
where T1.[date] = (select max(T2.[date]) from [In] as T2 where T2.place = T1.place)
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

19 พ.ย. 62 , 16:57:23
ตอบกลับ #18

Mercury

เปลี่ยนโหมดคิวรี่จาก Design View ไปเป็น SQL View แล้วเขียนคำสั่งนี้ลงไปแทนครับ

select T1.*, (select sum(T3.Inboxes) from [In] as T3 where T3.place = T1.place) as SumOfBoxin
from [In] as T1
where T1.[date] = (select max(T2.[date]) from [In] as T2 where T2.place = T1.place)

ทำตามโค้ดนี้แล้วสถานที่ดึงรหัสสินค้าเป็นไปตามที่ต้องการแล้วค่ะ :love:
แต่ฟิลด์ Sum มันต้องรวมจำนวนของสินค้ารหัสเดียวกันไว้ด้วยกันด้วยค่ะ ไม่ใช่แค่เฉพาะของวันที่นั้นๆ
ไม่ทราบว่าจะลบเงื่อนไขดังกล่าวที่ฟิลด์ Sum ตามที่อาจารย์เขียนให้ต้องแก้โค้ดตรงไหนคะ

ขอบคุณค่ะ
:dizzy:
 

19 พ.ย. 62 , 17:09:33
ตอบกลับ #19

สันติสุข

ผมไม่ค่อยแน่ใจถึงสิ่งที่ต้องการ  แต่เอาเป็นว่า ถ้าต้องรวมตาม [place] และ [product] เดียวกัน ก็แก้ส่วน sum โดยเพิ่มเงื่อนไข and เข้าไปในส่วนของ where ตามโค้ดข้างล่างนี้ แต่ถ้าต้องมีเงื่อนไขฟิลด์อื่นเพิ่มเติม ก็ทำในลักษณะเดียวกัน คือเพิ่ม and เข้าไปอีกครับ

select T1.*,(select sum(T3.Inboxes) from [In] as T3 where (T3.place = T1.place) and (T3.product = T1.product)) as SumOfBoxin
from [In] as T1
where T1.[date] = (select max(T2.[date]) from [In] as T2 where T2.place = T1.place)

ยังไงก็ทดสอบผลลัพธ์กับข้อมูลเยอะๆ เพื่อดูว่าถูกต้องหรือไม่ด้วย
« แก้ไขครั้งสุดท้าย: 20 พ.ย. 62 , 00:59:46 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury

19 พ.ย. 62 , 19:46:13
ตอบกลับ #20

OddyWriter

ไฟล์ตัวอย่างครับ ใช้ Total Query หรือใช้คำสั่ง Dlast ในฟอร์มครับ

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

20 พ.ย. 62 , 08:51:14
ตอบกลับ #21

Mercury

ผมไม่ค่อยแน่ใจถึงสิ่งที่ต้องการ  แต่เอาเป็นว่า ถ้าต้องรวมตาม [place] และ [product] เดียวกัน ก็แก้ส่วน sum โดยเพิ่มเงื่อนไข and เข้าไปในส่วนของ where ตามโค้ดข้างล่างนี้ แต่ถ้าต้องมีเงื่อนไขฟิลด์อื่นเพิ่มเติม ก็ทำในลักษณะเดียวกัน คือเพิ่ม and เข้าไปอีกครับ

select T1.*,(select sum(T3.Inboxes) from [In] as T3 where (T3.place = T1.place) and (T3.product = T1.product)) as SumOfBoxin
from [In] as T1
where T1.[date] = (select max(T2.[date]) from [In] as T2 where T2.place = T1.place)

ยังไงก็ทดสอบผลลัพธ์กับข้อมูลเยอะๆ เพื่อดูว่าถูกต้องหรือไม่ด้วย



ในส่วนของ Sum ข้อมูลจะต้องคำนวณการรับเข้า-จ่ายออก ดังภาพค่ะ
ที่หมายถึงคืออยากใช้โค้ดของอาจารย์ในส่วนการดึงข้อมูลสถานที่และรหัสสินค้า ร่วมกับการคำนวณของ Sum ที่ใช้อยู่ตามภาพค่ะ
:dizzy:
 

20 พ.ย. 62 , 09:24:51
ตอบกลับ #22

สันติสุข

ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

23 พ.ย. 62 , 12:13:19
ตอบกลับ #23

apirak

ถึงเจ้าของกระทู้ และสวัสดีอาจารย์ทุกๆท่านครับ

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

ขอบคุณครับ
   
« แก้ไขครั้งสุดท้าย: 23 พ.ย. 62 , 12:24:22 โดย apirak »

 
โพสต์นี้ได้รับคำขอบคุณจาก: Mercury


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