การดึงรายงาน บางครั้งต้องกำหนดเงื่อนไขวันที่ให้รัดกุม และแยกแยะรายละเอียดให้ชัดเจนว่ารายงานไหน เป็นรายงานไหน และข้อกำหนดของรายงานนั้นมีเงื่อนไขอะไรบ้าง ไม่เช่นนั้นแล้วรายงานอาจจะแสดงผลผิดพลาดได้ เหมือนกรณีที่ผมเจอมากับตัวเอง ^^”
ตัวอย่างข้อมูลที่จะใช้ดึงรายงาน
การตลาดออกไปติดต่อลูกค้าที่ต้องการมาลงโฆษณากับนิตยสารฉบับหนึ่ง ในเดือน มกราคม พ.ศ. 2556 ซึ่งมีผู้ประกอบการหลายรายที่สนใจลงโฆษณาในนิตยสาร โดยมีรายงานดังนี้
วันที่ 05/01/2556
1. ร้าน สวยบิ้วตี้ & ซาลอน
2. ร้าน ทนดีคอมพิวเตอร์
วันที่ 11/01/2556
1. บริษัท สนุกทัวร์ จำกัด
วันที่ 16/01/2556
1. บริษัท ขายทุกอย่าง จำกัด
2. บริษัท ก่อสร้างอลังการ จำกัด
สามารถเก็บค่าลงโฆษณาได้แล้ว 3 ราย ส่วนอีก 2 รายจะขอจ่ายในเดือนถัดไปซึ่งเป็นเดือน กุมภาพันธ์ ก่อนที่นิตยสารจะตีพิมพ์ และในเดือนกุมภาพันธ์ ก็มีลูกค้าสนใจเพิ่มอีก 3 ราย ซึ่งมีรายชื่อดังต่อไปนี้
วันที่ 11/02/2556
1. ร้าน ข้าวมันไก่รสเลิศ
2. ร้าน ผลิตภัณฑ์บำรุงผิว
วันที่ 18/02/2556
1. หจก. ส่งออกเสื้อผ้า
นิตยสารฉบับนี้จะส่งพิมพ์สิ้นเดือนกุมภาพันธ์นี้ และสามารถเก็บค่าลงโฆษณาได้ครบตามจำนวนเรียบร้อย ซึ่งตัวอย่างฐานข้อมูลทั้งหมด ที่ได้มีดังนี้
ข้อมูลที่ต้องการจะเก็บเป็น 2 ตาราง คือ
1. ข้อมูลลูกค้าที่ตกลงโฆษณา (tb_opportunity)
opp_id | date วันที่สนใจ | cus_name ชื่อลูกค้า | emp_name พนักงานที่ติดต่อ |
1 | 05/01/2556 | ร้าน สวยบิ้วตี้ & ซาลอน | นายมุ่งมั่น ตั้งใจ |
2 | 05/01/2556 | ร้าน ทนดีคอมพิวเตอร์ | นายมุ่งมั่น ตั้งใจ |
3 | 11/01/2556 | บริษัท สนุกทัวร์ จำกัด | นางสาวจงรัก ภักดี |
4 | 16/01/2556 | บริษัท ขายทุกอย่าง จำกัด | นางสาวจงรัก ภักดี |
5 | 16/01/2556 | บริษัท ก่อสร้างอลังการ จำกัด | นายมุ่งมั่น ตั้งใจ |
6 | 11/02/2556 | ร้าน ข้าวมันไก่รสเลิศ | นางสาวจงรัก ภักดี |
7 | 12/02/2556 | ร้าน ผลิตภัณฑ์บำรุงผิว | นายมุ่งมั่น ตั้งใจ |
8 | 18/02/2556 | หจก. ส่งออกเสื้อผ้า | นางสาวจงรัก ภักดี |
2. ข้อมูลลูกค้าที่จ่ายค่าโฆษณา (tb_payment)
pay_id | pay_date วันที่ชำระเงิน | cus_name ชื่อลูกค้า | emp_name พนักงานที่บันทึกข้อมูล | opp_id_ref |
8 | 22/01/2556 | ร้าน สวยบิ้วตี้ & ซาลอน | นางสาวบัญชี อยู่ดี | 1 |
11 | 19/01/2556 | ร้าน ทนดีคอมพิวเตอร์ | นางสาวบัญชี อยู่ดี | 2 |
12 | 27/01/2556 | บริษัท สนุกทัวร์ จำกัด | นางสาวบัญชี อยู่ดี | 3 |
15 | 20/02/2556 | บริษัท ขายทุกอย่าง จำกัด | นางสาวบัญชี อยู่ดี | 4 |
24 | 19/02/2556 | บริษัท ก่อสร้างอลังการ จำกัด | นางสาวบัญชี อยู่ดี | 5 |
27 | 19/02/2556 | ร้าน ข้าวมันไก่รสเลิศ | นางสาวจงรัก ภักดี | 6 |
28 | 23/02/2556 | ร้าน ผลิตภัณฑ์บำรุงผิว | นางสาวจงรัก ภักดี | 7 |
30 | 27/02/2556 | หจก. ส่งออกเสื้อผ้า | นางสาวจงรัก ภักดี | 8 |
* วันที่ในฐานข้อมูลจะเก็บในรูปแบบ ค.ศ. เช่น 2013-01-25
จากข้อมูลถ้าเราต้องการหาลูกค้าที่สนใจลงโฆษณาในเดือนมกราคม จะได้อยู่ 5 ราย
และถ้าเราค้นหารายการที่สนใจในเดือน มกราคม ที่ชำระค่าโฆษณาแล้ว ก็จะได้ 5 รายการ
เพราะลูกค้าที่สนใจลงโฆษณาได้ชำระเงินครบถ้วนแล้ว
แต่ถ้ากรณีดูข้อมูลย้อนหลัง ที่ไม่ใช่ข้อมูลปัจจุบัน มีจุดหนึ่งที่เราจะต้องระวังก็คือ เรื่องวันที่ของข้อมูล
เช่น ดูข้อมูลเปอร์เซ็นการเรียกเก็บเงินช่วงเดือน มกราคม ว่าสามารถเก็บได้ครบหรือเปล่า คิดเป็นกี่เปอร์เซ็นต์ที่ยังเรียกเก็บไม่ได้ เมื่อเรียกข้อมูลออกมา ข้อมูลการสนใจลงโฆษณาที่ชำระเงินแล้ว จะต้องได้แค่ 3 รายเท่านั้น เพราะเงื่อนไขคือต้องการเฉพาะที่เรียกเก็บเงินได้ในเดือนนั้น
จากโค๊ดตัวอย่าง คือเราจะต้องเพิ่มเงื่อนไข WHERE เข้าไปอีก เพื่อดึงเอาเฉพาะลูกค้าที่สนใจลงโฆษณาในเดือนมกราคม และได้จ่ายเงินในเดือนมกราคมเท่านั้น
สนใจ = 5
เก็บได้ = 3
ค้างชำระ = 2 (เพราะเป็นลูกค้าที่ชำระในเดือนถัดไป)
เปอร์เซ็นต์การเรียกเก็บจะได้เท่ากับ (3*100) / 5 = 60%
เราอาจจะหารายงานสรุปเปอร์เซ็นต์การค้างชำระประจำเดือน หรือประจำปี ของลูกค้าแต่ละรายได้
ว่ารายไหนที่มียอดค้างชำระบ่อย ค้างไว้นาน จะได้ใส่ใจเป็นพิเศษ ^^"
สำหรับโค๊ดที่นำมาเป็นตัวอย่างนั้น อาจเป็นเพียงแนวทางในการคิดเงื่อนไขการดึงรายงานเท่านั้น หากใครที่สามารถปรับแต่งให้ทำงานได้เร็วกว่า ก็อย่าลืมนำมาแบ่งปันเทคนิคที่ใช้กันบ้างนะครับ
จากข้อมูลถ้าเราต้องการหาลูกค้าที่สนใจลงโฆษณาในเดือนมกราคม จะได้อยู่ 5 ราย
<?php $sql = "SELECT * FROM tb_opportunity WHERE date BETWEEN '2013-01-01' AND '2013-01-31' "; //Query code.. ?>
และถ้าเราค้นหารายการที่สนใจในเดือน มกราคม ที่ชำระค่าโฆษณาแล้ว ก็จะได้ 5 รายการ
เพราะลูกค้าที่สนใจลงโฆษณาได้ชำระเงินครบถ้วนแล้ว
<?php $sql = "SELECT * FROM tb_opportunity "; $sql .= "INNER JOIN tb_payment ON tb_payment.opp_id = tb_payment .opp_id_ref"; $sql .= "WHERE tb_opportunity.date BETWEEN '2013-01-01' AND '2013-01-31' "; //Query code.. ?>
แต่ถ้ากรณีดูข้อมูลย้อนหลัง ที่ไม่ใช่ข้อมูลปัจจุบัน มีจุดหนึ่งที่เราจะต้องระวังก็คือ เรื่องวันที่ของข้อมูล
เช่น ดูข้อมูลเปอร์เซ็นการเรียกเก็บเงินช่วงเดือน มกราคม ว่าสามารถเก็บได้ครบหรือเปล่า คิดเป็นกี่เปอร์เซ็นต์ที่ยังเรียกเก็บไม่ได้ เมื่อเรียกข้อมูลออกมา ข้อมูลการสนใจลงโฆษณาที่ชำระเงินแล้ว จะต้องได้แค่ 3 รายเท่านั้น เพราะเงื่อนไขคือต้องการเฉพาะที่เรียกเก็บเงินได้ในเดือนนั้น
<?php $sql = "SELECT * FROM tb_opportunity "; $sql .= "INNER JOIN tb_payment ON tb_payment.opp_id = tb_payment .opp_id_ref"; $sql .= "WHERE tb_opportunity.date BETWEEN '2013-01-01' AND '2013-01-31' "; $sql .= "AND tb_payment.pay_date BETWEEN '2013-01-01' AND '2013-01-31' "; //Query code.. ?>
จากโค๊ดตัวอย่าง คือเราจะต้องเพิ่มเงื่อนไข WHERE เข้าไปอีก เพื่อดึงเอาเฉพาะลูกค้าที่สนใจลงโฆษณาในเดือนมกราคม และได้จ่ายเงินในเดือนมกราคมเท่านั้น
สนใจ = 5
เก็บได้ = 3
ค้างชำระ = 2 (เพราะเป็นลูกค้าที่ชำระในเดือนถัดไป)
เปอร์เซ็นต์การเรียกเก็บจะได้เท่ากับ (3*100) / 5 = 60%
เราอาจจะหารายงานสรุปเปอร์เซ็นต์การค้างชำระประจำเดือน หรือประจำปี ของลูกค้าแต่ละรายได้
ว่ารายไหนที่มียอดค้างชำระบ่อย ค้างไว้นาน จะได้ใส่ใจเป็นพิเศษ ^^"
สำหรับโค๊ดที่นำมาเป็นตัวอย่างนั้น อาจเป็นเพียงแนวทางในการคิดเงื่อนไขการดึงรายงานเท่านั้น หากใครที่สามารถปรับแต่งให้ทำงานได้เร็วกว่า ก็อย่าลืมนำมาแบ่งปันเทคนิคที่ใช้กันบ้างนะครับ
PHP CI MANIA - PHP Code Generator
โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ความคิดเห็น
แสดงความคิดเห็น