BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: Guitar-hero ที่ กันยายน 26, 2011, 21:37:52 PM

หัวข้อ: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: Guitar-hero ที่ กันยายน 26, 2011, 21:37:52 PM
ตามภาพเลยครับ รบกวนท่านผู้รู้เขียนคำสั่ง sql ให้หน่อยครับ งานเข้าจริงๆ
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: Guitar-hero ที่ กันยายน 26, 2011, 21:57:38 PM
อ๋อ ในตาราง รายละเอียดการจ่าย มี   รหัสสินค้า    ครับ ลืมใส่ไป คือความต้องการคือ พอคีย์รหัสสินค้าขึ้นมา แล้วก็ให้ แสดงประวัติการรับจ่าย และ รัน ยอดคงเหลือ ตามภาพที่ให้มาครับ
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: pop_hosxp ที่ กันยายน 26, 2011, 23:12:11 PM
โค๊ด: SQL
  1. SELECT temp.DATE, temp.no, temp.TYPE, temp.item_id, temp.qty FROM
  2. (SELECT DATE, in_number AS no, 'I' AS TYPE, item_id, qty
  3. FROM IN
  4. UNION
  5. SELECT DATE, in_number AS no, 'O' AS TYPE, item_id, qty
  6. FROM OUT o) AS temp
  7. WHERE temp.item_id=1
  8. ORDER BY temp.DATE, temp.no

ลองมั่วดูครับ  ;D ไม่รู้ว่าจะได้หรือเปล่า ผมเดาเอาไม่รู้ว่าจะถูกไหม ชื่อตาราง ชื่อ field ก็ไม่รู้ว่าจริง ๆ คืออะไร
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: pop_hosxp ที่ กันยายน 27, 2011, 10:19:46 AM
ลองใหม่แบบนี้ได้ไหมครับ

   
โค๊ด: SQL
  1. SELECT temp.DATE, temp.no, temp.TYPE, temp.item_id, temp.qty FROM
  2.     (SELECT DATE, in_number AS no, 'I' AS IN, item_id, qty AS qty_in, 0 AS qty_out
  3.     FROM IN
  4.     UNION
  5.     SELECT DATE, in_number AS no, 'O' AS TYPE, item_id, 0 AS qty_in, qty AS qty_out
  6.     FROM OUT o) AS temp
  7.     WHERE temp.item_id=1
  8.     ORDER BY temp.DATE, temp.no
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: Guitar-hero ที่ กันยายน 27, 2011, 21:58:59 PM
ยังเหลือ ยอดคงเหลือครับ ตามภาพที่แนบมาอยากให้ เมื่อมีการทำรายการ รับ หรือ จ่าย ก็ให้คำนวณ เป็นยอดคงเหลือ ด้วยครับ
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: pop_hosxp ที่ กันยายน 27, 2011, 22:08:46 PM
ผมว่าจริง ๆ แล้วต้องออกแบบให้มีตาราง stock_card ขึ้นมาอีกอันหนึ่งนะครับ ซึ่งเวลาไม่ว่าเรารับเข้า หรือจ่ายออก จะต้องมา update ที่ตาราง stock_card นี้ แต่ไม่ใช่เป็นการเก็บข้อมูลเฉพาะการจ่าย หรือการรับเข้า 2 ตารางเท่านั้นครับ

แล้วถ้าจะเอาแค่ 2 ตารางมาทำ query เป็น stock_card นี่ โอกาสที่จะรายงานผิดก็มีนะครับ มันไม่แน่เสมอไป เนื่องจาก มันทำให้เราไม่ทราบว่ารับเข้า หรือจ่ายออกจะเกิดก่อนกันครับ

ผมว่าออกแบบระบบ stock_card เพิ่มดีกว่า (ถ้ายังไม่ได้ทำ) จะได้ข้อมูลที่ชัวร์กว่าครับ เพิ่มอีกนิดเดียวครับ ไม่น่าจะไกลเกินเอื้อมครับ
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: Guitar-hero ที่ กันยายน 27, 2011, 23:02:57 PM
คือ ผมมีฟิลด์ types เป็นตัวเรียงลำดับให้อีกทีครับ ว่าเป็น รับ หรือ จ่าย คือ จะให้เรียง รับมา ก่อนจ่าย ก็น่าจะได้นะครับ ตามภาพที่แนบมา คือไม่อยากสร้างตารางเพิ่มครับ เพราะพอมีการแก้ไข ที่ตารางรับจ่าย ก็ต้องไล่ตามมาแก้ที่ตาราง stockcard อีกนะครับ รบกวนช่วยเขียน sql คำนวณจำนวนคงเหลือ เวลารับ จ่าย ให้ด้วยนะครับ
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: pop_hosxp ที่ กันยายน 28, 2011, 07:14:55 AM
คือ ผมมีฟิลด์ types เป็นตัวเรียงลำดับให้อีกทีครับ ว่าเป็น รับ หรือ จ่าย คือ จะให้เรียง รับมา ก่อนจ่าย ก็น่าจะได้นะครับ ตามภาพที่แนบมา คือไม่อยากสร้างตารางเพิ่มครับ เพราะพอมีการแก้ไข ที่ตารางรับจ่าย ก็ต้องไล่ตามมาแก้ที่ตาราง stockcard อีกนะครับ รบกวนช่วยเขียน sql คำนวณจำนวนคงเหลือ เวลารับ จ่าย ให้ด้วยนะครับ

ในการทำงานคลังจริง อาจมีการจ่ายก่อนรับได้นะครับ ไม่ได้รับก่อนจ่ายเสมอไป ผมจึงอยากให้ทำตาราง stock card เพิ่ม ทีนี้เวลาทำรายงาน stock card ก็ง่ายแล้วครับ
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: Guitar-hero ที่ กันยายน 28, 2011, 11:37:15 AM
ดันครับ
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: Guitar-hero ที่ กันยายน 28, 2011, 16:22:46 PM
ทำได้แล้วครับ ใช้ภาษา programming เข้าช่วย ขอบคุณทุกคำตอบนะครับ
หัวข้อ: Re: รบกวนเซียน sql แก้ปัญหานี้ให้หน่อยครับ เครียดมากๆเลย
เริ่มหัวข้อโดย: pop_hosxp ที่ กันยายน 28, 2011, 21:49:31 PM
ยินดีด้วยครับ อย่าลืมเอามาแบ่งปันที่นี่ด้วยนะครับ