 |
|
อยากถามคนที่ทําโปรแกรม Ware House หรือ Inventory ครับเรื่อง Design Database ส่วน Master |
|
 |
|
|
 |
 |
|
แบบเล็กๆ นะครับ มีอะไรบ้างล่ะครับ
มีตารางสินค้า
มีตารางซ์้อสินค้าไหม
มีตารางขายสินค้าไหม
มีตารางสินค้าหน้าร้านไหม
4 ตารางหลัก ที่สามารถทำงานได้ครบ
ตารางสินค้า เป็นตารางหลัก ต้องมี ส่วนที่เหลือ ก็ต้องดูว่าต้องการเก็บเพิ่มหรือเปล่า
2-3 ไว้เก็บ transaction ของสินค้าเข้าออก
4 ในกรณีที่มีหน้าร้าน
ก็ลองคิดเอานะครับว่า แต่ละตารางควรมี field อะไรบ้าง
|
 |
 |
 |
 |
Date :
2014-06-22 05:55:57 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้วถ้าแบบไม่เล็กอ่ะครับ
|
 |
 |
 |
 |
Date :
2014-06-22 10:23:35 |
By :
kenghockey |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ก็อาจจะเพิ่ม ตาราง รายวัน รายเดือน
main_stock, sub_stock, แล้ว แต่อยากจะเพิ่มเข้าไป เพื่อผลในการทำรายงาน
หรือผลในการ ค้นหา ครับ
|
 |
 |
 |
 |
Date :
2014-06-22 13:05:50 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมตั้งใจต่อกรกับ MS AX2013-2099/SAP ผมไม่หวังที่จะชนะหรอกครับ (มันเป็นไปไม่ได้อยู่แล้ว)
ตัวอย่าง Master file
-- mstProducts
-- mstLocation
-- mstProductType
-- mstProductGroup
-- mstetc...
ตัวนี้ผมใช้ BootStrap 3 ช่วยในการออกแบบ (ยังไม่ได้ Coding แม้แต่บรรทัดเดียวครับ)

ต้องมองให้ออกว่ามันเชื่อมโยงกับระบบอะไรบ้าง ที่เห็นชัดเจนก็ ระบบซื้อ/ขาย, ระบบบริหารการผลิต
ตัวอย่าง Diary Transaction
-- StockIN
-- InvoiceIssue
-- ReturnInvoice
-- StockManagement
-- StockMovement
-- StockAdjust
-- StockArea
-- etc...
|
 |
 |
 |
 |
Date :
2014-06-22 19:27:55 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เป็นโวหารกวีที่ยิ่งใหญ่งดงามสมแก่การกล่าวอ้างเป็นอย่างยิ่ง คราวนี้ลองปลุกจินตนาการที่หลับใหลไปพร้อมกับเยาว์วัยของเราขึ้นมาเทียบเคียงกับ รูป รส กลิ่น เสียง ที่มาสัมผัสเร้าความรู้สึกของเราแล้วเปรียบเทียบออกมาเป็นกวีโวหารดูบ้าง (เช่น อุปมา อุปลักษณ์ อติพจน์ บุคคลวัต ฯลฯ) บางทีเราอาจร่ำรวยอารมณ์กวี ไม่ต่างจากบทกวี เศรษฐี ของ อังคาร กัลยาณพงศ์ ชิ้นนี้ก็ได้
ดึกนี้เศรษฐีตื่นแล้ว สำรวจแก้วมณีในสวรรค์
ล้วนสมบัติฉันทั้งนั้น ชื่อแจ่มจันทร์และดวงดาว
จ้างเทพยดาปรุงอากาศ บริสุทธิ์สะอาดไว้กลางหาว
เจียระไนน้ำค้างที่พร่างพราว ป่าวให้ทานบุญสุนทรีย์
ปลูกมิ่งไม้ไว้หลายภูผา สั่งฟ้าอุ้มฝนจนเต็มที่
ไว้รดอุทยานแรมปี ให้เขียวขจีทั้งไพรวัน
เลี้ยงโประดกนกหกป่า ขังขอบฟ้าหิมวาอาถรรพณ์
ปันผลไม้เป็นของขวัญ รางวัลกันทุกฤดูไป
แล้วร้องปลุกอุษาเทวี เช้านี้หลับสนิทหรือไฉน
แสงเงินทองธนาคารชัย แม่เบิกใช้หมดแล้ว ฤ ยังมี
ฝากบอกพระสุริยาด้วย ช่วยเร่งอุทัยไขแสงสี
จ้างใหม่สัญญากว่าโกฏิปี เบิกเงินที่บรมพรหมินทร์
ฉันเบื่อสมบัติพัสถาน อำลาอวสานชีวิตสิ้น
ป่าวร้องทุกเม็ดทรายดิน รุมกินซากผีนี้เถอะเทอญ
|
 |
 |
 |
 |
Date :
2014-06-22 19:57:55 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าเป็นไปได้ช่วยอธิบาย Transection ให้ทีครับว่าแต่ละัวทําอะไรบ้าง
-- คุณตา Chaidhanan เขาอธิบายไปแล้วและผมเข้าใจว่าอะไรขาดก็เพิ่มอะไรเกินก็เอาออก
-- และผมจำได้ว่า "ทำทีละอย่างก่อนดีไหม" อุปมาอุปมัยว่า เขียนกอไก่ให้สวยให้คล่องก่อนแล้วค่อยไปเขียนตัวขอไข่
-- จะดีกว่าไหม
ผมว่ามันนอกเหนือจากคำว่า Inventory ไปไกลโขเลยนะครับ
หลักการซื้อ/ขายของนิติบุคคลทั่วฯไป และการทำงานของโปรแกรมต่างฯ อทิเช่น
WinSpeed/Express/Prosoft/CD/etc โดยปกติแล้วไม่แตกต่างกันครับ คุณลองไปดาวโหลดตัว Demo
มาทดสอบดูน่าจะดีกว่าคำอธิบายของผมครับ หรือถ้าคุณต้องการดูคำสั่ง Query แต่ละ Module มันก็ไม่ใช่เรื่องยาก
โดยการใช้ SQL Profiler มันก็จะช่วยให้คุณเข้าใจได้มากยิ่งขึ้นไปอีก โปรแกรมแต่ละตัวก็มีดีมีเด่นในตัวของมันเองครับ
ส่วนข้อด้อยผมยังมองไม่เห็นครับ
แต่ผมรู้สึกว่ามันอ้วนฉุ (อ้วนฉุ == โปรแกรม Excel มันทำงานได้หลากหลาย แต่เราใช้งานมันแค่นิดเดียว)
ตัวนี้ผมใช้ BootStrap 3 ช่วยในการออกแบบเอาไว้เฉยเฉย (ยังไม่ได้ Coding แม้แต่บรรทัดเดียวครับ)
หมายความว่า ผมไม่ได้เริ่มระบบที่ตรงนี้ ผมให้ความสำคัญกับระบบ GL (General Ledger) เป็นอันดับแรก
ระบบนี้ไม่เสร็จผมก็ไประบบอื่นไม่ได้ แน่นอนว่าผมต้องมี Algorithm ต่างฯอยู่ในหัวทั้งหมด อทิเช่น
Query งบทดลอง, งบดุล, งบกำไรขาดทุน หรือแม้กระทั่งว่าเพิ่มแก้ไข งบดุล/งบกำไรขาดทุน ด้วยตัวของนักบัญชีเอง
ปล. หนังสือที่คุณควรอ่านนอกเหนือจากภาษาโปรแกรม C# (ตัวผมเองใช้ VB เป็นหลักร้อยละ 99%ครับ)
-----1. การวางแผนการผลิตและควบคุมการผลิต เขียนโดย อ.ชุมพล ศฤงคารศิริ
-----2. หลักการบัญชี1,2 ใช้ของม.รามคำแหงก็ได้ราคาถูกดีครับ (ถ้าจำไม่ผิดเล่มละ 25 บาท)
-----3. คู่มือการประยุกต์ใช้ ระบบสมองกลฝังตัวในโรงงาน ของ สวทช (ผมจำเวปไม่ได้ลองหาดูเอาเองครับ)
-----4. etc...
|
 |
 |
 |
 |
Date :
2014-06-22 21:37:01 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมตัวคนเดียวหัวเดียวกระเทียมลีบ บางอย่างผมก็ไม่ได้คิดเองทั้งหมด อันนี้เป็นแนวคิดของอ.ของผม
(แน่นอนว่าไม่ธรรมดา) อันนี้คือบางช่วงบางตอนที่ผมและอ.ของผมคุยกัน อันนี้ถือว่าเป็น วิทยาทาน
1.โปรแกรม xxx/etc ไม่ใด้เก็บแบบนี้ครับ
2.ขั้นตอนการขายของและเอกสารแบบสรุป ยึดฝั่งคนขายเป็นหลัก
2.1 ยืนยันการซื้อ PO เอกสาร PO
2.2 ส่งของ พร้อมใบแจ้งหนี้ ; เอกสาร ใบแจ้งหนี้ และสำเนา ตัวจริง ลูกค้า สำเนา เรา บันทึก GL ด้วย
2.3 วางบิลตามสำเนาใบแจ้งหนี้ กำหนดวันรับชำระ ; เอกสาร ใบวางบิลที่ลูกค้าลงนาม
2.4 รับชำระออกใบเสร็จ ; เอกสาร ใบเสร็จพร้อมสำเนา ตัวจริง ลูกค้า สำเนาเรา
2.5 นำเช็คเข้าธนาคาร ; เอกสาร ใบ payin เอกสารภายในของเราเอง
2.6 นำ payin เลขที่ เช็ค มาทำใบสำคัญรับ เอกสารภายในของเราเอง
2.6.1 สามารถ อ้างจาก inv ก็ได้ และบันทึกบัญชีเข้า GL
2.6.2 หรือจะอ้างจาก ใบเสร็จก็ได้ บันทึกเข้า GL
2.7 เช็คผ่านและชำระเต็ม จบ
2.8 เช็คผ่านและชำระไม่เต็ม เป็นค้างชำระ
2.9 เช็คไม่ผ่าน ทำเช็คคืน ต้องตีกลับเข้าไปเป็นลูกหนี้คงค้าง หรือจะควบคุมต่างหาก แล้วแต่จะเขียน และบันทึกเข้า GL
สรุปใบเสร็จคือเอกสารยืนยันการรับชำระเงิน เอกสารทั้งคนขาย-คนซื้อ ใบสำคัญรับยืนยันการรับเงินเอกสารภายในคนขายครับ (สมุดรายวันรับเงิน)
จริงฯแล้วมันเกี่ยวข้องกับระบบภาษีซื้อ/ขายอีกนะ และสินค้าที่ขายด้วยอทิเช่น สินค้า/สินค้าบริการ มันก็มีข้อแตกต่างปลีกย่อยลงไปอีก
นั่นคือ ภาษีขาย/สำรองภาษีขาย เป็นต้น
etc...
ถ้าความสุขของคนไทยทุกคนคือการได้ดูบอลโลก ฟรี ดูหนังฟรี สิ่งเหล่านี้มันไม่ใช่ความสุขของผม
(ผมยังงงกับตัวเองว่าผมเป็นคนไทยหรือเปล่าว่ะ)
|
 |
 |
 |
 |
Date :
2014-06-22 21:57:29 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สงสัยต้องอ่านหนังสือ อีกเยอะเลย
เคยได้ยินประโยคนี้ไหมครับ : อ่านให้ตายเต็มที่ก็ได้แค่คำชมว่า "ขยัน" ถ้า
คุณอ่านหน้าแรกไปจนถึงหน้าสุดท้ายและคุณขาดสิ่งนี้ไป "เอ มันหายไปไหนหว่าอีกสองสามหน้า"
ผมนึกว่าจะมีบริษัท โปรแกรมบัญชีอีกบริษัทซะแล้วแต่ไม่มี อิอิ
-- ผมไม่คิดจะไปแข่งขันกับโปรแกรมพวกนี้ครับ (แข่งไปผมก็มีแต่คำว่าพ่ายแพ้) เพราะฉะนั้นผมจึงเลือกเดินไปอีกทางหนึ่ง
-- โอกาสที่จะมาชนกัน ไม่มีแน่นอนครับ
แต่ว่า ถ้าเจ้าของบริษัทเหล่านี้ได้มีโอกาสเห็น "ใส้ใน" และ Algorithm โปรแกรมของผม
อาจจะทำให้เขาคิดได้ว่าโปรแกรมที่เขามีอยู่มันขาดอะไรไปบ้าง อย่างน้อยฯ ก็คือ "โปรแกรมของผมมันมีชีวิตครับ"
|
 |
 |
 |
 |
Date :
2014-06-23 07:24:21 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอนนี้ผมสนใจในการทำโปรแกรม inventory พอจะมีหนังสือแนะนํารึเปล่าครับ
หรือถ้า warehouse พอจะมีหนังสือเกี่ยวกับการบริหาร จนถึงการบันทึกข้อมูลไหมครับ
|
 |
 |
 |
 |
Date :
2014-06-24 19:30:40 |
By :
kenghockey |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมงง กับการออกแบบ Database ของการตัด stock
ดูความเคลื่อนไหวของ stock คือ
1. จํานวนรับ (ออกแบบโดย สร้าง Stock IN โดยสร้างใบทํารับสินค้าแล้วบันทึกยอดรับ)
2. จํานวนจ่าย (ผมต้องสร้าง Stock Out โดยสร้างใบจ่ายแล้วบันทึกข้อมูล)
3. ยอดคงเหลือ (มาจากการนํา จํานวนจ่าย ลบกับ จํานวนสินค้าใน Stock)
ซึ่งผมกําลังคิดการแสดงผลหน้า Stock card จะเขียนอย่างไรครับ แล้วเวลาบันทึกข้อมูลจากที่มีการเบิกจ่ายไปแล้วจะต้องไปอัพเดท อะไรไหมครับ
ตัวอย่างที่ต้องการแสดงความเคลื่อนไหวแบบนี้ครับ ผมยังงงๆกับวิธีทําอยู่ครับ

|
ประวัติการแก้ไข 2014-06-26 22:30:47
 |
 |
 |
 |
Date :
2014-06-26 21:49:01 |
By :
kenghockey |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตัวอย่าง
1 ตาราง stock
รหัสสินค้า
ชื่อสินค้า
จำนวนยกมาก // ฟีลด์นี้ทำงานครั้งเดียว ตอนปิดยอดสิ้นปี
จำนวนเข้าระหว่างปี // ฟีลด์นี้ทำงานครั้งเดียว ตอนปิดยอดสิ้นปี
จำนวนออกระหว่างปี // ฟีลด์นี้ทำงานครั้งเดียว ตอนปิดยอดสิ้นปี
ยอดยกไป // ฟีลด์นี้ทำงานครั้งเดียว ตอนปิดยอดสิ้นปี
หมายเหตู ตารางที่1 นี้มีหน้าที่เพิ่มรายการสินค้า
และปิดยอดสิ้นปีเท่านั้น
2 ตารางรับสินค้ารายวัน (อาจเปลี่ยนชื่อตามวัน เดือน หรือ ปี ดูจากปริมาณสินค้าในแต่ละวัน)
รหัสสินค้า
วันที่รับเข้า
วันที่แก้ไข
บริัษัทผู้ผลิต
จำนวน
ราคา
ราคาขาย
หมายเหตุ ตารางที่ 2 นำเข้ารายการสินค้าทั้งหมด
3 ตารางส่งสินค้ารายวัน (อาจเปลี่ยนชื่อตามวัน เดือน หรือ ปี ดูจากปริมาณสินค้าในแต่ละวัน)
รายละเอียดคล้ายสินค้าเข้า
สำหรับ การรายงาน ก็คิวรี่ เอาจาก 3ตารางนี้
ถ้าไม่รีบจะไปเขียนต่อให้ที่ โรงพยาบาลครับ กำลังจะออกเดินทางล่ะ
|
 |
 |
 |
 |
Date :
2014-06-27 06:27:15 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
1. จํานวนรับ (ออกแบบโดย สร้าง Stock IN โดยสร้างใบทํารับสินค้าแล้วบันทึกยอดรับ)
2. จํานวนจ่าย (ผมต้องสร้าง Stock Out โดยสร้างใบจ่ายแล้วบันทึกข้อมูล)
3. ยอดคงเหลือ (มาจากการนํา จํานวนจ่าย ลบกับ จํานวนสินค้าใน Stock)
สิ่งที่คุณอธิบายมา 1, 2, 3 มันคือความจริงครับ ไม่มีทางเป็นอย่างอื่นไปได้
คุณหมอพรจ๋าคิด หรือจะเป็นย้ายเพิ้งขายของตลาดสดคิด มันก็เหมือนกันครับ
ซึ่งผมกําลังคิดการแสดงผลหน้า Stock card จะเขียนอย่างไรครับ แล้วเวลาบันทึกข้อมูลจากที่มีการเบิกจ่ายไปแล้วจะต้องไปอัพเดท อะไรไหมครับ
ตัวอย่างที่ต้องการแสดงความเคลื่อนไหวแบบนี้ครับ ผมยังงงๆกับวิธีทําอยู่ครับ
ผมไกด์ให้คุณไปแล้วว่าโปรแกรม A, B, C, D, etc (ดัก Query ก็จะรู้ว่ามันลงอย่างไร)
กดปุ่ม F1 เขามีคู่มือการใช้งานและขั้นตอนต่างฯประกอบ น่าจะเพียงพอที่จะทำให้คุณเข้าใจได้ครับ
แต่ละโปรแกรมที่ผมบอกคุณไปนั้น การออกแบบโครงสร้างตาราง(Tables) ก็ไม่เหมือนกัน แต่จะคล้ายฯกัน
ไม่มีนักปราชญ์คนไหนในโลกนี้ที่จะอธิบายให้ลูกศิษย์เข้าใจด้วยตัวอักษรเพียงอย่างเดียว นี่คือที่มาของคำว่าทำไมเขาถึงคุยกัน/ประชุมร่วมกันนั่นแล
ซึ่งแน่นอนว่าโครงสร้างตารางของผมจะไม่เหมือนกับโปรแกรมพวกนี้เลยครับ (คนละโลกครับและมีไม่กี่คนที่จะเข้าใจ)
-- เขาใช้ยี่สิบตารางหรือมากกว่านั้น ผมจะใช้แค่ 1 ตาราง
-- ใครเป็นคนทำ ใครเป็นคนดู นี่คือโครงสร้างของผม
-- ผมเขียนโปรแกรมอย่างไร โครงสร้างตารางของผมก็จะเป็นอย่างนั้น (ไร้ซึ่งทฤษฏี ทำตรงข้ามกับ Normalization)
----- โปรแกรมทุกตัวที่ผมกล่าวมาไม่มีตรงนี้ครับ
----- ระบบ IC ผมให้ความสำคัญเฉพาะการคำนวนต้นทุน ซื้อ/ขาย แค่นั้นเองครับนอกเหนือจากนี้ไม่มี
ผมคิดเอาไว้หมดแล้ว แต่ยังไม่ได้ทำ (ปฏิบัติสูงแต่ทฤษฏีทุเรศ)
ปล. ให้คุณไปดาวโหลด HosXP/IC มาดูเพิ่มเติมก็ได้ครับ (OpenSource อยู่แล้วครับ)
|
ประวัติการแก้ไข 2014-06-27 06:31:58 2014-06-27 06:35:05 2014-06-27 06:41:40 2014-06-27 06:58:32
 |
 |
 |
 |
Date :
2014-06-27 06:29:21 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โลกใบนี้สิ่งมีชีวิตอาศัยอยู่รวมด้วยความเชื่อ อทิเช่น อาจารย์กับลูกศิษย์
อจ: บนดาวอังคารมีน้ำ เพราะฉะนั้นมันต้องมีสิ่งมีชีวิตหลากหลายอาศัยอยู่บนนั้นแน่นอน เพราะว่าน้ำมันเป็นพื้นฐานของสรรพชีวิต(หลุม)
ลูกศิษย์ 1 : ครับ (มันก็ไม่ผิดหรอกที่เขาจะเชื่อตามเช่นนั้น)
ลูกศิษย์ 2 : ครับ (มันก็ไม่ผิดหรอกที่เขาจะเชื่อตามเช่นนั้น)
ลูกศิษย์ 3 : ครับ (มันก็ไม่ผิดหรอกที่เขาจะเชื่อตามเช่นนั้น)
ใครก็ไม่รู้ผ่านมา สมมุติว่าเป็น
คนเก็บขยะ : งุนงง ด้วยความอยากรู้/ตัวเองเขียนหนังสือไม่เป็น(อ่านไม่ได้อยู่แล้ว) ปากเพื่อชีวิต(หมา) อจ เคยไปมาแล้วยัง
อจ : เคยไปมาแล้ว
คนเก็บขยะ : เคยเห็นมากับตาตัวเองหรือยัง
อจ : เคยเห็นแล้ว เมียผมยังเห็นเลย มีหมีอาศัยอยู่บนนั้นด้วย
คนเก็บขยะ : ตอนนั้น อจ หลับหรือว่าตื่น
อจ : ตอนนั้นครึ่งหลับครึ่งตื่น เมียมันกวนทั้งคืน
คนเก็บขยะ : เอาให้แน่นะครับว่าหลับหรือตื่น
อจ : ถามทำไมว่ะ
คนเก็บขยะ : ผมจะให้ภรรยาของผมไปอยู่บนนั้น
อจ : -.-
นิทานเรื่องนี้สอนให้รู้ว่า คำว่า เมีย/ภรรยา คือสิ่งเดียวกันแต่ความรักที่เรามอบให้กับคนที่เรารักมันแตกต่างกัน
|
ประวัติการแก้ไข 2014-06-27 09:57:37
 |
 |
 |
 |
Date :
2014-06-27 09:49:44 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไปละครับอีก 3 วันเจอกัน
วันพรุ่งนี้ผมตั้งใจว่าจะไปทำบุญที่ จ.สระแก้ว, จ.ปราจีนบุรี
ขากลับตั้งใจแวะกราบหลวงหลวงพ่อโสธร จ.ฉะเชิงเทรา
Good Lucks.
|
 |
 |
 |
 |
Date :
2014-06-27 19:31:35 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมได้ Query มาชุดหนึ่งครับ Stockcard แต่ผมก็งงงงอยู่เหมือนกัน งงจริงนะครับไม่ได้พูดเล่น มันทำอะไรของมันว่ะเนี่ย
ถ้าเป็นไปได้คุณช่วยอธิบายให้ผมเข้าใจหน่อย
จะขอบคุณมากเป็นอย่างสูงครับ
[x] ต่อให้เขียนโปรแกรมได้เก่งแค่ไหน จะใช้ภาษาอะไรในการพัฒนา ถ้าไม่รู้ระบบงาน (ขั้นตอนการทำงาน) มันก็ทำอะไรไม่ได้ครับ
Code (SQL)
SELECT 'HED' AS REP_GROUP, WHS_BAL.WAREHOUSE, WHS_BAL.PART_NO, 'ยอดยกมา' AS DOC_NO, ' ' AS SEQ, CAST('3/3/2014' AS TIMESTAMP) AS DOC_DATE, CAST('00' AS INTEGER) AS PROCESS_SEQ, 'AA' AS TRAN_CODE, 'AAA' AS TRAN_TYPE, MIN(WHS_STAT.BEGIN_BAL) AS BEGIN_BAL, MIN(WHS_STAT.BEG_AMT) AS BEG_AMT, SUM(HIS_STAT.REC_QTY) AS REC_QTY, SUM(HIS_STAT.ISS_QTY) AS ISS_QTY, SUM(HIS_STAT.ADJ_INC) AS ADJ_INC, SUM(HIS_STAT.ADJ_DEC) AS ADJ_DEC, 0.00 AS TRAN_QTY, 0.00 AS TRAN_QTYSORT, SUM(HIS_STAT.TRAN_AMT) AS TRAN_AMT, '0' AS POST_FLAG, MIN(WHS_BAL.ACCODE) AS ACCODE, MIN(AC_TAB.ACCOUNT_NO) AS ACCOUNT_NO, MIN(UM_TAB.UM) AS UM, MIN(UM_TAB.UM_DESC) AS UM_DESC, MIN(WHS_BAL.PART_DESC) AS PART_DESC, 0.00 AS UNIT_COST, (
SELECT MIN(WHS_TAB.WHS_DESC)
FROM WHS_TAB
WHERE WHS_TAB.WAREHOUSE = WHS_BAL.WAREHOUSE
AND WHS_TAB.STK_LOCATION = (
SELECT MIN(WHB.STK_LOCATION)
FROM WHS_TAB WHB
WHERE WHB.WAREHOUSE = WHS_BAL.WAREHOUSE
)
) AS WHS_DESC, (
SELECT MIN(TRAN_DESC)
FROM PARTHIST
WHERE 1 <> 1
) AS TRAN_DESC, MIN(REP1.NOTE) AS NOTE, MIN(REP2.NOTE) AS NOTE2, CAST('0' AS NUMERIC(15, 2)) AS HDL_TRAN_QTY, CAST('0' AS NUMERIC(15, 2)) AS HDL_UNIT_COST
FROM WHS_BAL
LEFT JOIN WHS_STAT
ON WHS_BAL.WAREHOUSE = WHS_STAT.WAREHOUSE
AND WHS_BAL.PART_NO = WHS_STAT.PART_NO
AND WHS_STAT.curYEAR = '57'
AND WHS_STAT.PERIOD = '3'
LEFT JOIN HIS_STAT
ON WHS_BAL.WAREHOUSE = HIS_STAT.WAREHOUSE
AND WHS_BAL.PART_NO = HIS_STAT.PART_NO
AND HIS_STAT.DOC_DATE < '3/1/2014'
LEFT JOIN AC_TAB
ON WHS_BAL.WAREHOUSE = AC_TAB.WAREHOUSE
AND WHS_BAL.ACCODE = AC_TAB.ACCODE
LEFT JOIN PART_STD
ON WHS_BAL.PART_NO = PART_STD.PART_NO
LEFT JOIN UM_TAB
ON PART_STD.UM = UM_TAB.UM
LEFT JOIN REP REP1
ON REP1.ID = 'ปตท'
LEFT JOIN REP REP2
ON REP2.ID = 'LAST_POST'
WHERE WHS_BAL.WAREHOUSE = 'WH_001'
AND WHS_BAL.PART_NO BETWEEN 'DILDO'
AND 'DILDO'
GROUP BY WHS_BAL.WAREHOUSE, WHS_BAL.PART_NO
UNION ALL
SELECT 'DET' AS REP_GROUP, PARTHIST.WAREHOUSE, PARTHIST.PART_NO, PARTHIST.DOC_NO, PARTHIST.SEQ, PARTHIST.DOC_DATE, PARTHIST.PROCESS_SEQ, PARTHIST.TRAN_CODE, PARTHIST.TRAN_TYPE, 0.00 AS BEGIN_BAL, 0.00 AS BEG_AMT, 0.00 AS REC_QTY, 0.00 AS ISS_QTY, 0.00 AS ADJ_INC, 0.00 AS ADJ_DEC, PARTHIST.TRAN_QTY, CASE
WHEN ABS(PARTHIST.TRAN_QTY) > 0
THEN (PARTHIST.TRAN_QTY / (ABS(PARTHIST.TRAN_QTY)))
ELSE 0
END AS TRAN_QTYSORT, PARTHIST.TRAN_AMT, PARTHIST.POST_FLAG, WHS_BAL.ACCODE, AC_TAB.ACCOUNT_NO, UM_TAB.UM, UM_TAB.UM_DESC, WHS_BAL.PART_DESC, PARTHIST.UNIT_COST, (
SELECT MIN(WHS_TAB.WHS_DESC)
FROM WHS_TAB
WHERE WHS_TAB.WAREHOUSE = WHS_BAL.WAREHOUSE
AND WHS_TAB.STK_LOCATION = (
SELECT MIN(WHB.STK_LOCATION)
FROM WHS_TAB WHB
WHERE WHB.WAREHOUSE = WHS_BAL.WAREHOUSE
)
) AS WHS_DESC, PARTHIST.TRAN_DESC, REP1.NOTE AS NOTE, REP2.NOTE AS NOTE2, CAST('0' AS NUMERIC(15, 2)) AS HDL_TRAN_QTY, CAST('0' AS NUMERIC(15, 2)) AS HDL_UNIT_COST
FROM WHS_BAL
LEFT JOIN PARTHIST
ON WHS_BAL.WAREHOUSE = PARTHIST.WAREHOUSE
AND WHS_BAL.PART_NO = PARTHIST.PART_NO
AND PARTHIST.DOC_DATE BETWEEN '3/1/2014'
AND '3/3/2014 23:59'
LEFT JOIN AC_TAB
ON WHS_BAL.WAREHOUSE = AC_TAB.WAREHOUSE
AND WHS_BAL.ACCODE = AC_TAB.ACCODE
LEFT JOIN PART_STD
ON WHS_BAL.PART_NO = PART_STD.PART_NO
LEFT JOIN UM_TAB
ON PART_STD.UM = UM_TAB.UM
LEFT JOIN REP REP1
ON REP1.ID = 'ปตท'
LEFT JOIN REP REP2
ON REP2.ID = 'LAST_POST'
WHERE WHS_BAL.WAREHOUSE = 'WH_001'
AND WHS_BAL.PART_NO BETWEEN 'DILDO'
AND 'DILDO'
UNION ALL
SELECT 'DET' AS REP_GROUP, PARTHIST.WAREHOUSE, PARTHIST.PART_NO, PARTHIST.DOC_NO, PARTHIST.SEQ, PARTHIST.DOC_DATE, PARTHIST.PROCESS_SEQ, PARTHIST.TRAN_CODE, PARTHIST.TRAN_TYPE, 0.00 AS BEGIN_BAL, 0.00 AS BEG_AMT, 0.00 AS REC_QTY, 0.00 AS ISS_QTY, 0.00 AS ADJ_INC, 0.00 AS ADJ_DEC, PARTHIST.TRAN_QTY, CASE
WHEN ABS(PARTHIST.TRAN_QTY) > 0
THEN (PARTHIST.TRAN_QTY / (ABS(PARTHIST.TRAN_QTY)))
ELSE 0
END AS TRAN_QTYSORT, PARTHIST.TRAN_AMT, PARTHIST.POST_FLAG, WHS_BAL.ACCODE, AC_TAB.ACCOUNT_NO, UM_TAB.UM, UM_TAB.UM_DESC, WHS_BAL.PART_DESC, PARTHIST.UNIT_COST, (
SELECT MIN(WHS_TAB.WHS_DESC)
FROM WHS_TAB
WHERE WHS_TAB.WAREHOUSE = WHS_BAL.WAREHOUSE
AND WHS_TAB.STK_LOCATION = (
SELECT MIN(WHB.STK_LOCATION)
FROM WHS_TAB WHB
WHERE WHB.WAREHOUSE = WHS_BAL.WAREHOUSE
)
) AS WHS_DESC, PARTHIST.TRAN_DESC, REP1.NOTE AS NOTE, REP2.NOTE AS NOTE2, CASE
WHEN (- HDL.TRAN_QTY) > 0
THEN CAST((- HDL.TRAN_QTY) AS NUMERIC(15, 2))
ELSE 0
END AS HDL_TRAN_QTY, CASE
WHEN HDL.UNIT_COST > 0
THEN CAST(HDL.UNIT_COST AS NUMERIC(15, 2))
ELSE 0
END AS HDL_UNIT_COST
FROM WHS_BAL
LEFT JOIN PARTHIST
ON WHS_BAL.WAREHOUSE = PARTHIST.WAREHOUSE
AND WHS_BAL.PART_NO = PARTHIST.PART_NO
AND PARTHIST.DOC_DATE BETWEEN '3/1/2014'
AND '3/3/2014 23:59'
LEFT JOIN HIS_DTL HDL
ON HDL.WAREHOUSE = PARTHIST.WAREHOUSE
AND HDL.DOC_DATE = PARTHIST.DOC_DATE
AND HDL.DOC_NO = PARTHIST.DOC_NO
AND HDL.SEQ = PARTHIST.SEQ
LEFT JOIN AC_TAB
ON WHS_BAL.WAREHOUSE = AC_TAB.WAREHOUSE
AND WHS_BAL.ACCODE = AC_TAB.ACCODE
LEFT JOIN PART_STD
ON WHS_BAL.PART_NO = PART_STD.PART_NO
LEFT JOIN UM_TAB
ON PART_STD.UM = UM_TAB.UM
LEFT JOIN REP REP1
ON REP1.ID = 'ปตท'
LEFT JOIN REP REP2
ON REP2.ID = 'LAST_POST'
WHERE WHS_BAL.WAREHOUSE = 'WH_001'
AND HDL.UNIT_COST > 0
AND (- HDL.TRAN_QTY) > 0
AND WHS_BAL.PART_NO BETWEEN 'DILDO'
AND 'DILDO'
ORDER BY DOC_DATE
|
ประวัติการแก้ไข 2014-07-01 07:49:57
 |
 |
 |
 |
Date :
2014-07-01 07:35:23 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ข้อสังเกตุวิธีดู พวกมือเก๋าเจ้ง ดูแป๊บเดียวก็รู้แล้ว
ต่อให้ SourceCode มีเป็นแสนเป็นล้านบรรทัด กวาดตาดูแป๊บเดียว
1. ถ้าเป็นวันเวลา พวกนี้จะเล่นกับส่วนต่างนาที (Offset) เช่น 07:59, 23:59 เป็นต้น
2. ถ้าเป็นตัวเลข พวกนี้จะเล่นกับส่วนต่างทศนิยม (Offset) เช่น 10.01, 100.01, 15.01 เป็นต้น
3. ไอ้พวกนี้มักจะไม่ยอมหลับไม่ยอมนอน เหงาเมีย
|
ประวัติการแก้ไข 2014-07-01 07:59:53 2014-07-01 08:01:38
 |
 |
 |
 |
Date :
2014-07-01 07:57:33 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่เข้าใจ
|
 |
 |
 |
 |
Date :
2014-07-01 21:15:38 |
By :
kenghockey |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
วันพรุ่งนี้ต้องตีรถไป จ.นครนายกแต่เช้าวนเข้า จ.ปราจีนบุรี และอาจวนไป จ.ชลบุรี ถ้า
ไม่หลับในและตายห่านเสียก่อนอีก 5 วันเจอกันครับ
ปล. ไปรับหมอทำพิธีไสยศาสตร์บางอย่าง (ปลัดขิกปลุกเศกลงอาคม) เพื่อให้โปรแกรมของผมมันไม่เหมือนใคร
ซื้อโปรแกรมแถมปลัดขิก (เทคนิคทางการตลาดยุคใหม่)
(เห็นไหมว่าโปรแกรมของผมใส่ใจในวิทยาศาสตร์และให้ความสำคัญกับไสยศาสตร์เหมือนกัน)
+55555
|
ประวัติการแก้ไข 2014-07-01 23:59:05 2014-07-02 00:08:29
 |
 |
 |
 |
Date :
2014-07-01 23:55:37 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองดูนะครับ อาจจะเริ่มจากออกแบบเทเบิลเล็กๆก็ได้ครับ ยังไม่ต้องถึงขั้นบัญชง บัญชี Finance หมวด AP ก็ได้ครับ
ได้ก้าวแรกแล้วอย่างไงเราย่อมมีก้าวที่สองครับ
มีสองตัวอย่างให้ดู แบบพื้นฐานนะครับ อันนี้ก็ได้มาตั้งแต่ผมเริ่มเขียนโปรแกรมผมก็ได้ไป post ถามมาเหมือนกันครับ ที่ http://greatfriends.biz/
1. แบบแยก Column
select '2003' as ProductID,'02/02/2009' as StockDate,614 as ProductIN,10 as ProductOUT
into #temp
union
select '2003','03/02/2009',1000,248
union
select '2003','10/02/2009',0, 6
union
select '2003','11/02/2009',0,105
union
select '2003','12/02/2009',0,302
union
select '2003','13/02/2009',0,200
union
select '2003','16/02/2009',0,200
union
select '2003','23/02/2009',0,250
union
select '2003','24/02/2009',243,0
union
select '2003','26/02/2009',0,33
union
select '2003','27/02/2009',6,0
-- แสดงผล
select a.*,
(select sum(ProductIN) - sum(ProductOUT)
from #temp
where stockdate <= a.stockdate) as balance
from #temp a
2.แบบไม่แยก แต่เก็บเป็น ค่า + - (รับ = +,เบิก ขาย = -)
select '2003' as ProductID,'02/02/2009' as StockDate,614 as qty_trans
into #temp
union
select '2003','03/02/2009',1000
union
select '2003','10/02/2009',-340
union
select '2003','11/02/2009',898
union
select '2003','12/02/2009',-55
union
select '2003','13/02/2009',-700
union
select '2003','16/02/2009',-60
union
select '2003','23/02/2009',250
union
select '2003','24/02/2009',243
union
select '2003','26/02/2009',-33
union
select '2003','27/02/2009',6
-- แสดงผล
select a.*,
(select sum(qty_trans)
from #temp
where stockdate <= a.stockdate) as balance
from #temp a
ถ้าไม่ถูกต้องอย่างไงก็ขอโทษด้วยนะครับ
ปล. ท่านหน้าฮี ท่านทำให้ผมนึกถึงคุณวิศณุกรรม ที่คอยตอบคำถามที่ http://greatfriends.biz/ ครับ ท่านจะตอบประมาณท่านและก็จะสอนไปด้วยและก็นอกเรื่องไปด้วย อ่านแล้วมึนไปอีกแบบครับ ผมอาจจะเขียนชื่อท่านไม่ถูกนะครับ
|
 |
 |
 |
 |
Date :
2014-07-02 11:47:12 |
By :
chokbunthit |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
บ้านเมืองของเรา/ผู้นำของเรา/โดยเฉพาะมหาวิทยาลัย เต็มไปด้วยกุนซือ "ขงเบ้ง" ผู้รู้ไร้เทียมทาน
เสียดาย "ขงเจ้ง" ผู้เขลาไร้เทียมทานคอยเตือนสติ เขาโดนลบชื่อออกจากประวัติศาสตร์ไปชั่วกัปป์ไร้กัลป์
|
ประวัติการแก้ไข 2014-07-03 08:41:58
 |
 |
 |
 |
Date :
2014-07-03 08:40:09 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|