สมัครสมาชิก
 

การใช้คิวรี่คำนวณค่าขนส่งตามช่วงเรตราคา



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

05 เม.ย. 62 , 16:10:29
อ่าน 289 ครั้ง

apirak

เรียน อาจารย์และสมาชิกทุกๆท่านครับ
ผมขอสอบถามและขอความรู้การใช้โปรแกรม Access เพื่อที่จะนำมาใช้การคำนวณค่าขนส่งเพื่อลดขั้นตอนการทำงานลงและเพื่อความถูกต้องครับ โดยผมได้สร้างตาราง 4 ตาราง คือ
1.ตาราง tbl_Area
2.ตาราง tbl_DVL ตารางหลักสำหรับตรวจค่าขนส่ง
Weight_Chg
Postal_Code
Total_Exception
Freight_Charge
VAS
Total_Amount เป็นยอดเรียกเก็บที่แจ้งมาจากบริษัทขนส่ง
3.ตาราง tbl_Rate
4.ตาราง tbl_Remote

ในการทำงานจริง พอบริษัทขนส่งแจ้งค่าขนส่งมา ผมต้องมาตรวจสอบรายอะเอียดว่า
ค่าขนส่งฟิวส์Total_Amount ตาราง tbl_DVL ถูกต้องหรือเปล่า
โดยผมได้สร้างความสัมพันธ์ 3 ตาราง และสร้างคิวรี่ เพื่อคำนวณ แต่ยังติดการคำนวณว่ายังไม่สามารถดึงราคาค่าขนส่งจากตาราง tbl_Rate มาแสดงได้ ผมขออนุญาตรบกวนท่านอาจารย์และสมาชิกทุกๆท่านช่วยชี้แนะหลักการคำนวณ หรือการใช้โปรแกรม Access เพื่อที่จะได้มาประยุกต์การใช้งานต่อไปครับ

ขอบคุณครับ

 

05 เม.ย. 62 , 18:16:26
ตอบกลับ #1

ปิ่นณรงค์

  • ผู้ชำนาญการไท.Access
  • *
  • กระทู้: 567
  • พลังขอบคุณ: 472

  • Programer สาย DIY (ไม่ใช่อาจารย์นะครับ)

    • ดูรายละเอียด

ใช้การกำหนด Zone โดยใช้ Dlookup ครับ
Copy SQL นี้ไปวางทับ แล้วรันดูครับ

ถ้าจะให้แสดง Rate โดย กำหนดให้ตรวจสอบ Zone และช่วงของ Weight ต้องเหมือนกันใส่แบบนี้ครับ
โค๊ด: [Select]
SELECT tbl_DLV.ID, tbl_DLV.Weight_Chg, tbl_Area.Zone, tbl_DLV.Total_Exception, tbl_DLV.VAS, tbl_Remote.Amount, Nz([Total_Exception])+Nz([VAS])+Nz([Amount]) AS Audit, IIf([Weight_Chg] Between 1 And 2,"1") & IIf([Weight_Chg] Between 3 And 4,"3") & IIf([Weight_Chg] Between 5 And 9,"5") & IIf([Weight_Chg] Between 10 And 14,"10") & IIf([Weight_Chg] Between 15 And 19,"15") & IIf([Weight_Chg]=20,"20") AS Weight_ChgRate, IIf([Zone]="BKK",DLookUp("BKK","tbl_Rate","Weight = " & Nz([Weight_ChgRate],0))) & IIf([Zone]="UPC1",DLookUp("UPC1","tbl_Rate","Weight = " & Nz([Weight_ChgRate],0))) & IIf([Zone]="UPC2",DLookUp("UPC2","tbl_Rate","Weight = " & Nz([Weight_ChgRate],0))) AS Rate
FROM tbl_Remote RIGHT JOIN (tbl_Area RIGHT JOIN tbl_DLV ON tbl_Area.Postal_Code = tbl_DLV.Postal_Code) ON tbl_Remote.Postal_Code = tbl_DLV.Postal_Code;

« แก้ไขครั้งสุดท้าย: 05 เม.ย. 62 , 19:20:08 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: apirak

05 เม.ย. 62 , 18:36:03
ตอบกลับ #2

apirak

ขอบคุณท่านอาจารย์ ปิ่นณรงค์ มากๆครับ..เดียวผมจะทำตามวิธีการของท่านอาจารย์นะครับ..ผมรอท่านอาจารย์นะครับ

ขอบคุณครับผม

 

05 เม.ย. 62 , 19:23:53
ตอบกลับ #3

ปิ่นณรงค์

  • ผู้ชำนาญการไท.Access
  • *
  • กระทู้: 567
  • พลังขอบคุณ: 472

  • Programer สาย DIY (ไม่ใช่อาจารย์นะครับ)

    • ดูรายละเอียด

คำตอบข้างบนนะครับ
วิธีการคือ การคำนวนน้ำหนัก และการคิดราคา Zone ราคาต่างกัน และ น้ำหนักมีช่วงของน้ำหนัก เลยใช้การ Group น้ำหนัก เพื่อให้เปรียบเทียบกันได้ ครับ
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: apirak

05 เม.ย. 62 , 19:53:38
ตอบกลับ #4

ปิ่นณรงค์

  • ผู้ชำนาญการไท.Access
  • *
  • กระทู้: 567
  • พลังขอบคุณ: 472

  • Programer สาย DIY (ไม่ใช่อาจารย์นะครับ)

    • ดูรายละเอียด

ของ Weight_ChgRate ถ้า >20 กำหนดราคาเดียวคือ 20 ก็ใส่แบบนี้แทนนะคับ

โค๊ด: [Select]
Weight_ChgRate: IIf([Weight_Chg] Between 1 And 2,"1") & IIf([Weight_Chg] Between 3 And 4,"3") & IIf([Weight_Chg] Between 5 And 9,"5") & IIf([Weight_Chg] Between 10 And 14,"10") & IIf([Weight_Chg] Between 15 And 19,"15") & IIf([Weight_Chg]>=20,"20")
ส่วนการคำนวนต่อไปถ้าติดตรงไหนบอกได้นะครับ
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: apirak

05 เม.ย. 62 , 21:22:12
ตอบกลับ #5

apirak

ขอโทษครับท่านอาจารย์ปิ่นณรงค์ที่ผมตอบช้าครับ ผมขอขอบคุณท่านอาจารย์มากๆครับผม.. ผมขอนำวิธีการของท่านอาจารย์ที่แนะนำ มาทำตามขั้นตอนและผมขออนุญาตรายงานผลกลับนะครับ...ขอบคุณท่านอาจารย์มากๆครับ

 

06 เม.ย. 62 , 00:06:04
ตอบกลับ #6

apirak

เรียนท่านอาจารย์ปิ่นณรงค์ ผมได้ทำตามขั้นตอนที่อาจารย์แนะนำแล้วครับ ผมขอโทษอาจารย์ด้วยครับที่บอกรายเอียดไม่ชัดเจนและบอกไม่ครบครับ เรคราคาในตาราง tbl_Rate การคิดราคาบริษัทขนส่งจะคิดแบบ
ถ้าไม่เกิน 1 kg คิด 1 kg
ช่วง 2-3 kg คิด 3 kg
ช่วง 4-5 kg คิด 5 kg
ช่วง 6-10 kg คิด 10 kg
ช่วง 11-15 kg คิด 15 kg
ช่วง 16-20 kg คิด 20 kg
ช่วง 20 kg ขึ้นไป หลักการคิดผมยังไม่แน่ใจเดียวผมไปขอข้อมูลกับบริษัทขนส่งและจะอัพเดทอาจารย์อีกครั้งครับ

ในคิวรี่ผมขออนุญาตอาจารย์ลองปรับเปลี่ยนตัวเลขช่วงน้ำหนักของอาจารย์ ที่ผมไม่ได้บอกอาจารย์ในตอนแรก ตอนนี้การคำนวณเรตราคาถูกต้องแล้วครับอาจารย์..ผมขอขอบคุณท่านอาจารย์ปิ่นณรงค์มากๆครับที่แนะนำและช่วยเหลือ และผมจะนำไปใช้กับการทำงาน เพื่อลดขั้นตอนการทำงานลง และเพือความถูกต้องของการตรวจสอบครับ

ขอบคุณมากครับผม
« แก้ไขครั้งสุดท้าย: 06 เม.ย. 62 , 10:35:23 โดย apirak »

 

08 เม.ย. 62 , 09:51:30
ตอบกลับ #7

apirak

วันนี้ได้ Copy โค๊ต SQL ของท่านอาจารย์ ปิ่นณรงค์ มาวางในโปรแกรมหลักแล้ว ผลการทำงาน ระบบประมวลผลค่าขนส่งถูกต้อง 100%ครับผม จากที่เคยที่ใช้เวลาการคำนวณเรคคอร์ดกว่า 2 พัน ใช้เวลา 5-7 วัน แต่ตอนนี้ใช้เวลาไม่เกิน 10 นาทีครับ ผมต่องขอขอบคุณท่านอาจารย์ปิ่นณรงค์ที่กรุณาให้คำแนะนำและมอบโค๊ต SQL ในการคิวรี่คำนวณค่าขนส่งมาให้ครับผม

ขอบคุณท่านอาจารย์มากๆครับ
 

 

08 เม.ย. 62 , 21:57:39
ตอบกลับ #8

ปิ่นณรงค์

  • ผู้ชำนาญการไท.Access
  • *
  • กระทู้: 567
  • พลังขอบคุณ: 472

  • Programer สาย DIY (ไม่ใช่อาจารย์นะครับ)

    • ดูรายละเอียด

ยินดีครับ thai access บอร์ดแห่งการแชร์ประสบการณ์ การแบ่งปันและการเรียนรู้ครับ ผมเริ่มจากไม่เป็นเลยได้เรียนรู้จากบอร์ดนี้แหละครับ จนพอที่จะแนะนำได้บ้าง :meaw:
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown, Un, mbbrid, aek, apirak


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