Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > อยากถามคนที่ทําโปรแกรม Ware House หรือ Inventory ครับเรื่อง Design Database ส่วน Master



 

อยากถามคนที่ทําโปรแกรม Ware House หรือ Inventory ครับเรื่อง Design Database ส่วน Master

 



Topic : 109372



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์




ตอนนี้กําลังอยากฝึกเขียน C# เลยอยากลองเขียนโปรแกรม คลังสินค้า แบบเล็กๆ เลยอยากถามคนที่เคยทําว่าออกแบบฐานข้อมูล มีอะไรบ้างครับ (Master)

แล้วแต่ละฟิลด์นี้เก็บอะไรบ้าง พอมีตัวอย่างไหมครับ



Tag : .NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-06-21 22:10:47 By : kenghockey View : 4000 Reply : 37
 

 

No. 1



โพสกระทู้ ( 9,553 )
บทความ ( 2 )



สถานะออฟไลน์


แบบเล็กๆ นะครับ มีอะไรบ้างล่ะครับ

มีตารางสินค้า
มีตารางซ์้อสินค้าไหม
มีตารางขายสินค้าไหม
มีตารางสินค้าหน้าร้านไหม


4 ตารางหลัก ที่สามารถทำงานได้ครบ

ตารางสินค้า เป็นตารางหลัก ต้องมี ส่วนที่เหลือ ก็ต้องดูว่าต้องการเก็บเพิ่มหรือเปล่า
2-3 ไว้เก็บ transaction ของสินค้าเข้าออก
4 ในกรณีที่มีหน้าร้าน

ก็ลองคิดเอานะครับว่า แต่ละตารางควรมี field อะไรบ้าง






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-22 05:55:57 By : Chaidhanan
 


 

No. 2



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


แล้วถ้าแบบไม่เล็กอ่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-22 10:23:35 By : kenghockey
 

 

No. 3



โพสกระทู้ ( 9,553 )
บทความ ( 2 )



สถานะออฟไลน์


ก็อาจจะเพิ่ม ตาราง รายวัน รายเดือน
main_stock, sub_stock, แล้ว แต่อยากจะเพิ่มเข้าไป เพื่อผลในการทำรายงาน
หรือผลในการ ค้นหา ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-22 13:05:50 By : Chaidhanan
 


 

No. 4



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ผมตั้งใจต่อกรกับ MS AX2013-2099/SAP ผมไม่หวังที่จะชนะหรอกครับ (มันเป็นไปไม่ได้อยู่แล้ว)


ตัวอย่าง Master file
-- mstProducts
-- mstLocation
-- mstProductType
-- mstProductGroup
-- mstetc...

ตัวนี้ผมใช้ BootStrap 3 ช่วยในการออกแบบ (ยังไม่ได้ Coding แม้แต่บรรทัดเดียวครับ)
ic_99911

ต้องมองให้ออกว่ามันเชื่อมโยงกับระบบอะไรบ้าง ที่เห็นชัดเจนก็ ระบบซื้อ/ขาย, ระบบบริหารการผลิต


ตัวอย่าง Diary Transaction

-- StockIN
-- InvoiceIssue
-- ReturnInvoice
-- StockManagement
-- StockMovement
-- StockAdjust
-- StockArea
-- etc...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-22 19:27:55 By : หน้าฮี
 


 

No. 5



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


เป็นโวหารกวีที่ยิ่งใหญ่งดงามสมแก่การกล่าวอ้างเป็นอย่างยิ่ง คราวนี้ลองปลุกจินตนาการที่หลับใหลไปพร้อมกับเยาว์วัยของเราขึ้นมาเทียบเคียงกับ รูป รส กลิ่น เสียง ที่มาสัมผัสเร้าความรู้สึกของเราแล้วเปรียบเทียบออกมาเป็นกวีโวหารดูบ้าง (เช่น อุปมา อุปลักษณ์ อติพจน์ บุคคลวัต ฯลฯ) บางทีเราอาจร่ำรวยอารมณ์กวี ไม่ต่างจากบทกวี เศรษฐี ของ อังคาร กัลยาณพงศ์ ชิ้นนี้ก็ได้


ดึกนี้เศรษฐีตื่นแล้ว สำรวจแก้วมณีในสวรรค์
ล้วนสมบัติฉันทั้งนั้น ชื่อแจ่มจันทร์และดวงดาว

จ้างเทพยดาปรุงอากาศ บริสุทธิ์สะอาดไว้กลางหาว
เจียระไนน้ำค้างที่พร่างพราว ป่าวให้ทานบุญสุนทรีย์

ปลูกมิ่งไม้ไว้หลายภูผา สั่งฟ้าอุ้มฝนจนเต็มที่
ไว้รดอุทยานแรมปี ให้เขียวขจีทั้งไพรวัน

เลี้ยงโประดกนกหกป่า ขังขอบฟ้าหิมวาอาถรรพณ์
ปันผลไม้เป็นของขวัญ รางวัลกันทุกฤดูไป

แล้วร้องปลุกอุษาเทวี เช้านี้หลับสนิทหรือไฉน
แสงเงินทองธนาคารชัย แม่เบิกใช้หมดแล้ว ฤ ยังมี

ฝากบอกพระสุริยาด้วย ช่วยเร่งอุทัยไขแสงสี
จ้างใหม่สัญญากว่าโกฏิปี เบิกเงินที่บรมพรหมินทร์

ฉันเบื่อสมบัติพัสถาน อำลาอวสานชีวิตสิ้น
ป่าวร้องทุกเม็ดทรายดิน รุมกินซากผีนี้เถอะเทอญ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-22 19:57:55 By : หน้าฮี
 


 

No. 6



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : หน้าฮี เมื่อวันที่ 2014-06-22 19:27:55
รายละเอียดของการตอบ ::
ตัวที่แสดงใช้เป็นเว็บใช่ไหมครับ

ถ้าเป็นไปได้ช่วยอธิบาย Transection ให้ทีครับว่าแต่ละัวทําอะไรบ้าง


ถ้าผมมี ระบบซื้อ ระบบขาย

เวลาเช๊คสต๊อก Transection จะต้องออกแบบประมาณไหน เก็บอะไรบ้าง


ประวัติการแก้ไข
2014-06-22 20:35:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-22 20:22:54 By : kenghockey
 


 

No. 7



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้าเป็นไปได้ช่วยอธิบาย 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 : หน้าฮี
 


 

No. 8



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ผมตัวคนเดียวหัวเดียวกระเทียมลีบ บางอย่างผมก็ไม่ได้คิดเองทั้งหมด อันนี้เป็นแนวคิดของอ.ของผม
(แน่นอนว่าไม่ธรรมดา) อันนี้คือบางช่วงบางตอนที่ผมและอ.ของผมคุยกัน อันนี้ถือว่าเป็น วิทยาทาน

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 : หน้าฮี
 


 

No. 9



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : หน้าฮี เมื่อวันที่ 2014-06-22 21:57:29
รายละเอียดของการตอบ ::
สงสัยต้องอ่านหนังสือ อีกเยอะเลย แต่ที่ผมเห็นให้ดู winspeed prosoft โปรแกรมตัวอย่าง ผมนึกว่าจะมีบริษัท โปรแกรมบัญชีอีกบริษัทซะแล้วแต่ไม่มี อิอิ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-22 22:37:07 By : kenghockey
 


 

No. 10



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


สงสัยต้องอ่านหนังสือ อีกเยอะเลย

เคยได้ยินประโยคนี้ไหมครับ : อ่านให้ตายเต็มที่ก็ได้แค่คำชมว่า "ขยัน" ถ้า
คุณอ่านหน้าแรกไปจนถึงหน้าสุดท้ายและคุณขาดสิ่งนี้ไป "เอ มันหายไปไหนหว่าอีกสองสามหน้า"

ผมนึกว่าจะมีบริษัท โปรแกรมบัญชีอีกบริษัทซะแล้วแต่ไม่มี อิอิ
-- ผมไม่คิดจะไปแข่งขันกับโปรแกรมพวกนี้ครับ (แข่งไปผมก็มีแต่คำว่าพ่ายแพ้) เพราะฉะนั้นผมจึงเลือกเดินไปอีกทางหนึ่ง
-- โอกาสที่จะมาชนกัน ไม่มีแน่นอนครับ

แต่ว่า ถ้าเจ้าของบริษัทเหล่านี้ได้มีโอกาสเห็น "ใส้ใน" และ Algorithm โปรแกรมของผม
อาจจะทำให้เขาคิดได้ว่าโปรแกรมที่เขามีอยู่มันขาดอะไรไปบ้าง อย่างน้อยฯ ก็คือ "โปรแกรมของผมมันมีชีวิตครับ"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-23 07:24:21 By : หน้าฮี
 


 

No. 11



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : หน้าฮี เมื่อวันที่ 2014-06-23 07:24:21
รายละเอียดของการตอบ ::
ก็คือ "โปรแกรมของผมมันมีชีวิตครับ"
ชีวิตนี้คือยังไงครับ เช่น ผมสนใจนะ คุยกับคุณนี้ถือว่าแปลกแต่น่าค้นหา

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-23 20:24:50 By : kenghockey
 


 

No. 12



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนี้ผมสนใจในการทำโปรแกรม inventory พอจะมีหนังสือแนะนํารึเปล่าครับ
หรือถ้า warehouse พอจะมีหนังสือเกี่ยวกับการบริหาร จนถึงการบันทึกข้อมูลไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-24 19:30:40 By : kenghockey
 


 

No. 13



โพสกระทู้ ( 9,553 )
บทความ ( 2 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : kenghockey เมื่อวันที่ 2014-06-23 20:24:50
รายละเอียดของการตอบ ::
แหมนี่ยังจะสนใจในส่วนนี้ได้อีกนะครับ
ก็แค่เขามีความสนุกที่ได้เขียนโปรแกรมอะครับ

สำหรับผมจะมีความสนุกเมื่อผมอยากทำ
การอยากทำก็
1 เงินดี
2 สาธารณประโยชน์
ถ้า มีพร้อมทั้ง 2 ข้อ ผมก็ทำงานอย่างสนุกสนาน เพลิดเพลิน ครับ
แต่ถ้าไม่มีทั้ง 2 ข้อ ก็ซังกะตายทำครับ 55555

ส่วนโปรแกรม มันทำได้แค่ เร็วถูกต้อง ช้าถูกต้อง เออเร่อร์ 3 อย่างนี่เท่านั้นครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-25 04:31:56 By : Chaidhanan
 


 

No. 14



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ผมงง กับการออกแบบ Database ของการตัด stock
ดูความเคลื่อนไหวของ stock คือ

1. จํานวนรับ (ออกแบบโดย สร้าง Stock IN โดยสร้างใบทํารับสินค้าแล้วบันทึกยอดรับ)
2. จํานวนจ่าย (ผมต้องสร้าง Stock Out โดยสร้างใบจ่ายแล้วบันทึกข้อมูล)
3. ยอดคงเหลือ (มาจากการนํา จํานวนจ่าย ลบกับ จํานวนสินค้าใน Stock)

ซึ่งผมกําลังคิดการแสดงผลหน้า Stock card จะเขียนอย่างไรครับ แล้วเวลาบันทึกข้อมูลจากที่มีการเบิกจ่ายไปแล้วจะต้องไปอัพเดท อะไรไหมครับ

ตัวอย่างที่ต้องการแสดงความเคลื่อนไหวแบบนี้ครับ ผมยังงงๆกับวิธีทําอยู่ครับ

stk


ประวัติการแก้ไข
2014-06-26 22:30:47
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-26 21:49:01 By : kenghockey
 


 

No. 15



โพสกระทู้ ( 9,553 )
บทความ ( 2 )



สถานะออฟไลน์


ตัวอย่าง

1 ตาราง stock
รหัสสินค้า
ชื่อสินค้า
จำนวนยกมาก // ฟีลด์นี้ทำงานครั้งเดียว ตอนปิดยอดสิ้นปี
จำนวนเข้าระหว่างปี // ฟีลด์นี้ทำงานครั้งเดียว ตอนปิดยอดสิ้นปี
จำนวนออกระหว่างปี // ฟีลด์นี้ทำงานครั้งเดียว ตอนปิดยอดสิ้นปี
ยอดยกไป // ฟีลด์นี้ทำงานครั้งเดียว ตอนปิดยอดสิ้นปี
หมายเหตู ตารางที่1 นี้มีหน้าที่เพิ่มรายการสินค้า
และปิดยอดสิ้นปีเท่านั้น

2 ตารางรับสินค้ารายวัน (อาจเปลี่ยนชื่อตามวัน เดือน หรือ ปี ดูจากปริมาณสินค้าในแต่ละวัน)
รหัสสินค้า
วันที่รับเข้า
วันที่แก้ไข
บริัษัทผู้ผลิต
จำนวน
ราคา
ราคาขาย
หมายเหตุ ตารางที่ 2 นำเข้ารายการสินค้าทั้งหมด

3 ตารางส่งสินค้ารายวัน (อาจเปลี่ยนชื่อตามวัน เดือน หรือ ปี ดูจากปริมาณสินค้าในแต่ละวัน)
รายละเอียดคล้ายสินค้าเข้า

สำหรับ การรายงาน ก็คิวรี่ เอาจาก 3ตารางนี้

ถ้าไม่รีบจะไปเขียนต่อให้ที่ โรงพยาบาลครับ กำลังจะออกเดินทางล่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 06:27:15 By : Chaidhanan
 


 

No. 16



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


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 : หน้าฮี
 


 

No. 17



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-06-27 06:27:15
รายละเอียดของการตอบ ::
รออยู่ครับ ตรงคิวรี่ที่แสดงเป็น Record ความเคลื่อนไหวเนี่ยแหละครับ ที่งงๆ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 07:07:42 By : kenghockey
 


 

No. 18



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


สนองนโยบาย "กรุณามีความสุข"

และทำตามผู้หลักผู้ใหญ่เขาแนะนำมา "ไม่พอใจ เมกาและอียู้"


เริ่มเลยทันทีบัดเดี๋ยวนี้ แม่ยายผมกินยาสารพัดโรค ตัวยามาจากเมกา ชื่อยาเป็นภาษาอังกฤษมาจาก อียู้
โยนทิ้งถังขยะแม่งเลย ไม่ให้กินล่ะ เพื่อแสดงความรักชาติ

ว่าจะไปเอาน้ำมนต์จากหลวงปู่โด่ และเลยไปเอายาหม้อจากสัปเหร่อบุญ วัดเปรตหลง มาให้กินน่าจะดีกว่า



เตงเตงเตงเต่งเต้งเตงเต่ง เตงเตงเตงเต่งเต้งเตง
คันหูไม่รู้เป็นอะไร น้ำตาไหลพรากพรากเลยว่ะ +5เศร้า5เศร้า5เศร้า5เศร้า5เศร้า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 07:11:18 By : หน้าฮี
 


 

No. 19



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 17 เขียนโดย : kenghockey เมื่อวันที่ 2014-06-27 07:07:42
รายละเอียดของการตอบ ::
เขียนให้ดูสดสดเลยครับ เฉพาะยอดยกมา

Select A.รหัสรายการ, Sum(A.Field +- B.Field) As ยอดเมาค้าง From tblรับ A Inner Join tblจ่าย B
ON A.DocNo = B.DocNo
Where A.DocDate < วันที่ก่อนยกมา AND DocNo = 'xxx'
UNION ALL
เหมือนเดิม
WHERE A.DocDate >= ตั้งแต่วันที่ AND A.DocDate <= จนจริงจริงถึงวันที่ AND DocNo = 'xxx'




ประวัติการแก้ไข
2014-06-27 07:21:12
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 07:18:51 By : หน้าฮี
 


 

No. 20



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-06-27 06:27:15
รายละเอียดของการตอบ ::
2 ตารางรับสินค้ารายวัน (อาจเปลี่ยนชื่อตามวัน เดือน หรือ ปี ดูจากปริมาณสินค้าในแต่ละวัน)


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

ปล. งานจริงของผมอยู่ต่ำกว่านี้อีกครับ (xcopy /s/c, Dir /s/c > xxx.txt)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 08:02:51 By : หน้าฮี
 


 

No. 21



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 19 เขียนโดย : หน้าฮี เมื่อวันที่ 2014-06-27 07:18:51
รายละเอียดของการตอบ ::
ผมไม่รู้ว่าคุณมีพื้นฐาน SQL Query Language มากน้อยแค่ไหน


ดูเหมือนมั่วแต่ไม่ได้มั่ว ที่ผมเน้นและเข้าใจว่าคุณยังไม่เข้าใจ/ทำไม่ได้คือ ยอดยกไป มันก็คือ ยอดยกมาของ ณ. วันนั้น - ณ.วันไหน
นั่นคือคำสั่ง UNION ALL

Code (SQL)
Select 30 As Total   /*ยอดยกมา*/
UNION ALL
Select 30 + 5 As Total /* ยอดยกมา + ยอดเริ่มเคลื่อนไหว*/


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


คุณบอกว่าผมเป็นคนแปลกมันถูกต้องแล้วครับ ดารานักแสดง หัวเราะ/ร้องไห้ ตามบทตอนที่ผู้กำกับ/บทกำกับ
แต่
แต่ทุกย่างก้าวของผม ร้องไห้/หัวเราะ สลับกันไปตามธรรมชาติของมันครับ โดย ไม่มีบทกำกับ/ใครมาสั่งให้ผมต้องทำ


ประวัติการแก้ไข
2014-06-27 09:16:54
2014-06-27 09:27:21
2014-06-27 09:33:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 09:14:06 By : หน้าฮี
 


 

No. 22



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


โลกใบนี้สิ่งมีชีวิตอาศัยอยู่รวมด้วยความเชื่อ อทิเช่น อาจารย์กับลูกศิษย์

อจ: บนดาวอังคารมีน้ำ เพราะฉะนั้นมันต้องมีสิ่งมีชีวิตหลากหลายอาศัยอยู่บนนั้นแน่นอน เพราะว่าน้ำมันเป็นพื้นฐานของสรรพชีวิต(หลุม)
ลูกศิษย์ 1 : ครับ (มันก็ไม่ผิดหรอกที่เขาจะเชื่อตามเช่นนั้น)
ลูกศิษย์ 2 : ครับ (มันก็ไม่ผิดหรอกที่เขาจะเชื่อตามเช่นนั้น)
ลูกศิษย์ 3 : ครับ (มันก็ไม่ผิดหรอกที่เขาจะเชื่อตามเช่นนั้น)
ใครก็ไม่รู้ผ่านมา สมมุติว่าเป็น
คนเก็บขยะ : งุนงง ด้วยความอยากรู้/ตัวเองเขียนหนังสือไม่เป็น(อ่านไม่ได้อยู่แล้ว) ปากเพื่อชีวิต(หมา) อจ เคยไปมาแล้วยัง
อจ : เคยไปมาแล้ว
คนเก็บขยะ : เคยเห็นมากับตาตัวเองหรือยัง
อจ : เคยเห็นแล้ว เมียผมยังเห็นเลย มีหมีอาศัยอยู่บนนั้นด้วย
คนเก็บขยะ : ตอนนั้น อจ หลับหรือว่าตื่น
อจ : ตอนนั้นครึ่งหลับครึ่งตื่น เมียมันกวนทั้งคืน
คนเก็บขยะ : เอาให้แน่นะครับว่าหลับหรือตื่น
อจ : ถามทำไมว่ะ
คนเก็บขยะ : ผมจะให้ภรรยาของผมไปอยู่บนนั้น
อจ : -.-


นิทานเรื่องนี้สอนให้รู้ว่า คำว่า เมีย/ภรรยา คือสิ่งเดียวกันแต่ความรักที่เรามอบให้กับคนที่เรารักมันแตกต่างกัน


ประวัติการแก้ไข
2014-06-27 09:57:37
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 09:49:44 By : หน้าฮี
 


 

No. 23



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 21 เขียนโดย : หน้าฮี เมื่อวันที่ 2014-06-27 09:14:06
รายละเอียดของการตอบ ::
เนี่ยแหละครับคําตอบที่ผมรอคอย Union

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 11:18:51 By : kenghockey
 


 

No. 24



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 23 เขียนโดย : kenghockey เมื่อวันที่ 2014-06-27 11:18:51
รายละเอียดของการตอบ ::
เนี่ยแหละครับคําตอบที่ผมรอคอย Union


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

ขะเจี้ยวขะเมี้ยวกะรูบรื้อมะรึกะรือบรือหนูกลัวท่องปรึมปรึมปืม ผมก็ไม่ต้องการความหมายเช่นเดียวกันครับ

+55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 12:36:25 By : หน้าฮี
 


 

No. 25



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 19 เขียนโดย : หน้าฮี เมื่อวันที่ 2014-06-27 07:18:51
รายละเอียดของการตอบ ::
ผมสงสัย
Select A.รหัสรายการ, Sum(A.Field +- B.Field) As ยอดเมาค้าง From tblรับ A Inner Join tblจ่าย B
ON A.DocNo = B.DocNo
Where A.DocDate < วันที่ก่อนยกมา AND DocNo = 'xxx'

ว่า รับ กับจ่าย ต้องอ้างอิงกันด้วยหรอครับ

- รับ : คือเราทํารับเข้าสต๊อก
- จ่าย : คือถ้ามีคนมาเบิกมา เราก็ทําจ่ายออกสต๊อก

ที่สงสัยคือมัน tblรับ A Inner Join tblจ่าย B JOIN กันอยู่

เพราะที่ผมเข้าใจคือ การทําจ่ายจะต้องอ้างอิงจากใบเบิก

ถ้าผิดยังไงช่วยอธิบายละเอียดให้ทีนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 16:53:14 By : kenghockey
 


 

No. 26



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 25 เขียนโดย : kenghockey เมื่อวันที่ 2014-06-27 16:53:14
รายละเอียดของการตอบ ::
สิ่งที่คุณสงสัยถูกต้องแล้วครับ


ที่สงสัยคือมัน tblรับ A Inner Join tblจ่าย B JOIN กันอยู่ อันนี้ของผมไม่ถูกต้องแน่นอนครับ เลยทำให้คุณสับสน
ผมต้องของโทษคุณด้วย

คุณ Chaidhanan และท่านอื่นฯ น่าจะอธิบายตรงนี้ได้ชัดเจนและถูกต้องได้มากกว่าผมแน่นอนครับ
ผมเชื่อเช่นนั้น


โครงสร้างตารางที่ผมได้ออกแบบเอาไว้(บางส่วน)และผมไม่ได้แยกตาราง รับ-จ่าย
(คุณกลับไปดูความคิดเห็นของคุณ Chaidhanan ถ้าปริมาณข้อมูลมากฯต้องทำอย่างไร?)

***** ตรงนี้ผมถือว่าวัดกึ๋น ใครจะวิเคราะห์ระบบได้ดีกว่ากัน (การเขียนโปรแกรมคงไม่แตกต่างกันครับ)
***** ความถูกต้องและความเร็วมันต้องมาพร้อมกัน เพราะมันวิ่งบน Internet
***** เทคโนโลยีและเทคนิคงัดออกมาประชันกัน (10 ชั้นเป็นอย่างต่ำ)

โดยที่ INOUT + คือรับ
โดยที่ INOUT - คือจำนวนที่จ่าย

DocNo, DocDate, DocType, StkCode, INOUT

มันทำให้ผมเขียน Query ได้ง่ายและไม่ซับซ้อน ไม่ต้อง Join เป็นต้น
(การ Design Tables สำคัญมากกว่าการเขียนโปรแกรมนะครับ จำเอาไว้ก็ไม่ได้เสียหายอะไร)

บางทีมันมีอะไรค้ำคอผมอยู่ บางครั้งผมรู้ก็จริงแต่ผมก็ไม่สามารถอธิบายได้
ผมไม่ใช่คนโง่ แต่ผมก็ไม่ได้ฉลาดไปทุกฯเรื่อง เช่นเดียวกันครับ

ปล. ความอ่อนโยน/ความเห็นใจซึ่งกันและกัน มันสามารถเอาชนะและหยุดความก้าวร้าวของมนุษย์ได้


ประวัติการแก้ไข
2014-06-27 18:57:15
2014-06-27 18:59:45
2014-06-27 19:17:40
2014-06-27 19:28:17
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 18:25:24 By : หน้าฮี
 


 

No. 27



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ไปละครับอีก 3 วันเจอกัน
วันพรุ่งนี้ผมตั้งใจว่าจะไปทำบุญที่ จ.สระแก้ว, จ.ปราจีนบุรี
ขากลับตั้งใจแวะกราบหลวงหลวงพ่อโสธร จ.ฉะเชิงเทรา

Good Lucks.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 19:31:35 By : หน้าฮี
 


 

No. 28



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 26 เขียนโดย : หน้าฮี เมื่อวันที่ 2014-06-27 18:25:24
รายละเอียดของการตอบ ::
ก็ถูกนะครับที่ว่าใช้ตารางเดียว มันจะง่าย
ส่วนถ้ามีปริมาณข้อมูลมากๆ ผมสรุปยอด ตามเดือน ตามปีอยู่แล้วครับ ไม่ได้เรียกมาทุกป

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 19:40:55 By : kenghockey
 


 

No. 29



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-06-27 06:27:15
รายละเอียดของการตอบ ::
No 15 ผมอ่านแล้วเป็นสิ่งที่ผมต้องการรู้เพื่อประสบการณ์ ยังไงรบกวนเขียนคิวรี่ให้ผมเรียนรู้ทีครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-27 19:47:38 By : kenghockey
 


 

No. 30



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ผมได้ 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 : หน้าฮี
 


 

No. 31



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ข้อสังเกตุวิธีดู พวกมือเก๋าเจ้ง ดูแป๊บเดียวก็รู้แล้ว
ต่อให้ 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 : หน้าฮี
 


 

No. 32



โพสกระทู้ ( 1,195 )
บทความ ( 0 )



สถานะออฟไลน์


ไม่เข้าใจ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-01 21:15:38 By : kenghockey
 


 

No. 33



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


ผมเป็นคนอาภัพ ผมจำเป็นต้องเข้าใจและต้องเข้าใจอย่างลึกซึ้ง
ไม่เข้าใจนั่นหมายถึงว่าผมต้องจบอาชีพโปรแกรมเมอร์ของผมแต่เพียงเท่านี้และผมต้องหาอาชีพอื่นทำ

ผมมั่นใจว่า "ไม่มีอะไรยากเกินความพยายามของคนที่มีความพยายามเหลือเฟือ"
ต่อให้มันยาก/ซับซ้อนมากแค่ไหน คนอาภัพและผมต้องคิดว่ามันก็คือ 1 + 1 = 2 ง่ายง่ายนั่นแล

ตัวอย่างของ Query
x_ic_02

เปรียบคนเราเหมือนดังขึ้น ภูเขา
ฝ่าไปเอาหมายตัวเรา ก้าวไกล
สูงสูงขึ้นไปใครจะอยู่ ข้างเรา
กิเลสยุเย้าให้ ปีนป่าย



ประวัติการแก้ไข
2014-07-01 23:08:59
2014-07-01 23:19:06
2014-07-01 23:21:33
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-01 23:06:06 By : หน้าฮี
 


 

No. 34



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


วันพรุ่งนี้ต้องตีรถไป จ.นครนายกแต่เช้าวนเข้า จ.ปราจีนบุรี และอาจวนไป จ.ชลบุรี ถ้า
ไม่หลับในและตายห่านเสียก่อนอีก 5 วันเจอกันครับ

ปล. ไปรับหมอทำพิธีไสยศาสตร์บางอย่าง (ปลัดขิกปลุกเศกลงอาคม) เพื่อให้โปรแกรมของผมมันไม่เหมือนใคร
ซื้อโปรแกรมแถมปลัดขิก (เทคนิคทางการตลาดยุคใหม่)
(เห็นไหมว่าโปรแกรมของผมใส่ใจในวิทยาศาสตร์และให้ความสำคัญกับไสยศาสตร์เหมือนกัน)

+55555


ประวัติการแก้ไข
2014-07-01 23:59:05
2014-07-02 00:08:29
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-01 23:55:37 By : หน้าฮี
 


 

No. 35



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ลองดูนะครับ อาจจะเริ่มจากออกแบบเทเบิลเล็กๆก็ได้ครับ ยังไม่ต้องถึงขั้นบัญชง บัญชี 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
 


 

No. 36



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


Code
ลองดูนะครับ อาจจะเริ่มจากออกแบบเทเบิลเล็กๆก็ได้ครับ ยังไม่ต้องถึงขั้นบัญชง บัญชี Finance หมวด AP ก็ได้ครับ ได้ก้าวแรกแล้วอย่างไงเราย่อมมีก้าวที่สองครับ


ตัวอย่าง แยก/รวมคอลัมภ์ ชัดเจนดีครับ เจ้าของกระทู้น่าจะเข้าใจและต่อยอดได้ไม่ยาก
แต่ผมเสริมนิดหนึ่งครับ หวังว่าคงจะไม่สร้างความสับสนเพิ่มนะครับ
1. Temporary Tables (Local Temp & Global Temp #, ##)
---- ควรจะใส่คำสั่งนี้ก่อนเริ่มเขียน Query และควรจะทำลายทิ้งเมื่อไม่ใช้
Code (SQL)
IF OBJECT_ID('tempdb..#temp') IS NOT NULL
	DROP TABLE #temp

2. คำสั่ง UNION จะทำงานช้ากว่าคำสั่ง UNION ALL ครับ
---- UNION ALL = แม่ม่ายลูกติด
---- UNION = สาวสาวสั้นเสมอหู


ขอความรู้เพิ่มเติมหน่อยครับในกรณีที่แยกตาราง รับ-จ่าย หน้าตาของ SQL Query จะออกมาประมาณไหนครับ


ปล. ขงเจ้งน้องชายขงเบ้ง เคยเตือนพี่ชายว่า "เป็นแมวต้องหมั่นลับเล็บ เป็นเสือก็เช่นเดียวกัน"
----- หลังจากนั้นอนุชนรุ่นหลังก็ไม่เคยได้ยินชื่อของ "ขงเจ้ง" อีกเลยครับ


ประวัติการแก้ไข
2014-07-03 08:31:36
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-03 08:21:09 By : หน้าฮี
 


 

No. 37



โพสกระทู้ ( 611 )
บทความ ( 0 )



สถานะออฟไลน์


บ้านเมืองของเรา/ผู้นำของเรา/โดยเฉพาะมหาวิทยาลัย เต็มไปด้วยกุนซือ "ขงเบ้ง" ผู้รู้ไร้เทียมทาน
เสียดาย "ขงเจ้ง" ผู้เขลาไร้เทียมทานคอยเตือนสติ เขาโดนลบชื่อออกจากประวัติศาสตร์ไปชั่วกัปป์ไร้กัลป์


ประวัติการแก้ไข
2014-07-03 08:41:58
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-03 08:40:09 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากถามคนที่ทําโปรแกรม Ware House หรือ Inventory ครับเรื่อง Design Database ส่วน Master
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่