ยอดยกมา เดือนนี้และสุทธิ
กระทู้เก่าบอร์ด อ.Yeadram

 2,784   6
URL.หัวข้อ / URL
ยอดยกมา เดือนนี้และสุทธิ

ผมเก็บข้อมูลตารางในรูปนี้
วันที่----------รหัสสินค้า--------จำนวนเงิน
1/1/2554      12345               500
3/1/2554       6543               300
2/2/2554      12345              1000
4/3/2554       6543               1250
6/3/2554       12345              2500
ต้องการให้ออกมาเป็นแบบนี้
เดือน-------รหัสสินค้า--------ยอดยอกมา-------เดือนนี้---------สุทธิ
1              12345                     0                 500             500
1               6543                      0                 300             300
2              12345                    500              1000          1500
3               6543                     300              1250          1550
3              12345                   1500              2500          4000
น่าจะใช้ Query ทำแต่ติดที่ีวันเดือนปี ยอดยกมายังมองภาพไม่ออกว่าจะ
Query แบบไหน
ใครพอชี้แนะได้ขอความกรุณาด้วยครับ

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

1 @R11242
การทำระบบ inventory โดยทั่วไปจะมีรอบบัญชี เริ่มใช้เมื่อไหร่
ซึ่งปกติผมจะนำยอดยกมาแยกตารางต่างหาก หรือง่ายหน่อยก็เก็บไว้ในตารางสินค้า ซึ่งปกติจะทำเพียงครั้งเดียวในรอบบัญชีนั้น

ส่วนที่เหลือก็เป็น transaction รับเข้า-จ่ายออก ตามเอกสารทางบัญชี
รับเข้า(in) เช่น invoice ซื้อ, ตัวอย่างสินค้า ,ยืมมา เป็นต้น
จ่ายออก(out) เช่น ขาย ,คืนบริษัท ,ให้ยืม
ซึ่งส่วนนี้แยกกัน ด้วย doctype ประเภทเอกสาร

ในการทำ transaction จะเก็บไว้ table เดียวกัน หรือแยกก็ได้
ถ้าใน table เดียวกัน ก็แยก การรับเข้า จ่ายออก ด้วย
fieldชื่อ status(ชื่ออื่นก็ได้) เก็บค่า i =in, o=out
fieldชื่อ doctype เก็บประเภทเอกสาร เพื่อให้รูว่า เป็นขาย ซื้อ ยืม คืน
เป็นต้น
และใช้ field ชื่อ docdate เก็บวัน เดือนปี ที่ทำ transaction นั้น
2 @R11243
ถ้าเป็นสินค้า จะมีตาราง
tbProduct เก็บรายละเอียดสินค้าและยอดยกมา
tbCustomer ข้อมูลลูกค้า
tbSupplier    ข้อมูลผู้ขาย
tbTransactionMain   เก็บรายละเอียดส่วนหัวการทำ transaction
เช่นวันที่ เลขที่เอกสาร รหัสลูกค้าหรือรหัสผู้ขาย จำนวนเงิน
tbTransactionDetail เก็บรายละเอียดการขาย จำนวนสินค้า จำนวนเงิน

แล้วนำไปเขียน query จะได้หน้าตาที่ใช้กันประจำ
แบบสรุป
จากช่วงวันที่ ...   ถึงวันที่ ....
รหัสสินค้า รายละเอียด    ยอดยกมา รับ จ่าย คงเหลือ
12345        ไหมขัดลิ้น        100       500      0     600

แบบรายละเอียด
รหัสสินค้า รายละเอียด
12345        ไหมขัดลิ้น                          ยอดยกมา    100
เลขที่/วันที่เอกสาร รายละเอียด    รับเข้า   จ่ายออก    คงเหลือ
54001 03/10/2554    ซื้อจาก abx      500        0              600

เป็นภาพกว้าง ๆ ที่อยากให้เห็นก่อน ส่วนรายละเอียด เป็นเรื่อง requirement เฉพาะที่

3 @R11247
ขอบคุณอาจารย์ ditasilk และขอโทษด้วยครับ
ผมอยากให้คนอื่นมองง่ายๆ เลยกำหนดเป็นสินค้า แล้วจะเอาไปแปลงใช้ใหม่ครับ
จริงๆ โปรเจคนี้เป็นเรื่องบัญชีครับ ถ้าเป็นเรื่องของสินค้าผมก็คงจะใช้แบบที่อาจารย์แนะนำครับ แต่มันเป็นเรื่องเงิน แถมยังมีเครดิต เดรบิตอีก เลยจำลองสถานการเป็นสินค้า เพื่อให้คนที่เก่งการโปรแกรมแต่ไม่รู้เรื่องบัญชี มองออกง่ายๆ ครับ แล้วฐานข้อมูลมันออกแบบไปแล้วมันแก้ไขวิธียาก พอจะเก็บในรูปแบบนี้เลยทำให้คิดไม่ออก
4 @R11252
หลักการคล้ายกันครับ
รวมถึงสามารถทำการ์ดลูกหนี้ การ์ดเจ้าหนี้ ได้ด้วย
สมุดรายวัน งบทดลอง

แล้วฐานข้อมูลมันออกแบบไปแล้วมันแก้ไขวิธียาก พอจะเก็บในรูปแบบนี้เลยทำให้คิดไม่ออก
ลองเทียบเคียงดูว่า
จากตารางผมไม่ทราบว่ารายการไหนเป็นยอดยกมา
ตัวเลขหรือรายการใดเป็นยอดรับเข้ายอดจ่ายออก
แล้วจะไปต่อได้ยังไงครับ น่าจะมีข้อมูลเพิ่มอีกนะ

อันนี้น่าจะเป็นตัวอย่าง การเขียน program สำหรับผู้อยากฝึก
โดยเฉพาะ database design ไม่ใช่เขียนโปรแกรมเป็น
จะทำ database ยังไงก็ได้นะครับ มันมีความสัมพันธ์กับเป้าหมาย
การเขียน program ความซ้ำซ้อนของข้อมูล
อย่าออกแบบตาราง ตรงๆ คืออยากได้อะไรก็
สร้างฟิลด์เก็บข้อมูลเลย จะเหนื่อยภายหลังครับ
5 @R11253
ขอบคุณอาจารย์ ditasilk อีกครั้งครับ
จริงอย่างที่อาจารย์บอกทุกอย่างครับ มันติดตรงที่ตอนแรกๆ ความต้องการของ
ผู้ใช้เค้ามีน้อยๆ แต่พอเราทำโปรแกรมให้เค้าใช้ง่าย เค้าก็จะบอกว่าแบบนี้ได้มั้ย
เพิ่มอีกได้มั้ย เราก็พยายามคิดไว้ก่อนจากประสบการณ์ ว่าเค้าจะต้องขอเพิ่มแบบนั้นแบบนี้ แต่ก็ไม่ครอบคลุมครับ แล้วถ้าคิดให้ก่อนมากๆ แล้วเค้าไม่ได้ต้องการเพิ่ม จะเพิ่มภาระในการบันทึกข้อมูล งานนนี้ผมก็ทำออกมาได้แล้วครับ(ก็ไปดูจากอาจารย์ท่านอื่นๆ แหละครับ) เพียงแต่ที่ทำมาต้องมีวันที่กำหนด เช่นจะดูยอด ณ วันไหน ก็จะ
มีจุดอ้างอิงให้เอาวันเดือนปีมาลบกันได้ แต่ครั้งนี้ อยากดูแบบเป็นรายเดือน มันก็เลยไม่สามารถ อ้างอิงได้ครับ เช่น จะดูเดือนมกราคม ก็อ้างจากเดือนธันวาเป็นยกมา แต่ครั้งนี้ อยากให้ออกเป็น รายเดือนเลย เลยไม่รู้จะอ้างอิงยังงัยครับ บางครั้งคำตอบของอาจารยหลายท่าน แค่บอกแนวคิดผมก็มีไอเดียได้ ก็เลยโพสไว้ก่อนครับ
6 @R11254
คงเหมือนผมตอนเริ่มใหม่ ๆ เก็บอะไรได้เก็บหมด ใส่ตารางไว้เดี๋ยวเอาออกมาใช้
ตอนหลัง มาเรียนรู้การ NORMALIZATION
(ง่ายๆ กับศัพท์ NORMALIZATION คือ ข้อมูลอะไรที่ซ้ำซ้อน
ให้แยกตารางออกมา ใหม่ )
พอเขียนโปรแกรมได้ ก็รับช่วยคนโน้นคนนี้ แผนกโน้นแผนกนี้
ทีนี้งานก็เข้า เขียนได้กับเขียนเป็น มันต่างกัน นะครับ
มันหงุดหงิดมากตอนบอกความต้องการตอนแรก กับตอนหลังไม่เหมือนกัน หรือขอเพิ่ม เวลาจะออกรายงาน ขอสิ่งที่ไม่มีอยู่ใน requirement
เฮ้อ เศร้า
ตอนหลังเลยขอ Flow การทำงาน, report ที่ต้องการ เป็นต้น
เป็นการควบคุม ความต้องการที่เพ้อฝัน ของผู้ให้ข้อมูล
ย้อนกลับมา เข้าเรื่อง
คุณ un ลองดูว่า มีข้อมูลอะไร แล้ว post ดู เผื่อจะช่วยตอบได้นะครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3935s