สอบถามเรื่องการ Sum ใน Access ครับ

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: สอบถามเรื่องการ Sum ใน Access ครับ

Re: สอบถามเรื่องการ Sum ใน Access ครับ

by touleg » 03/12/2011 1:49 pm

Code: Select all

SELECT Sum(tblpos.Total) AS total
FROM tblpos
WHARE tblpos.Sell_Date Between [date1] And [date2];

สอบถามเรื่องการ Sum ใน Access ครับ

by feen » 22/11/2011 11:16 am

ผมเขียนระบบซื้อขายสินค้าหน้าร้านแบบไม่ได้ตัดสต๊อก ใช้ vb และฐานข้อมูล Access และตอนนี้ติดปัญหาในการคิวรี่ข้อมูลเพื่อแสดงรายงานหลักๆ คือ
1.รายงานยอดเงินรวมของสินค้าทั้งหมดที่ขายได้ในวันนั้นๆ และระหว่างช่วงเวลาครับ
เช่น
-วันที่ 11/11/2554 ยอดรวม 500 บาท อันนี้ออกครับ เพราะเลือกวันเดียว
แต่ถ้า
-วันที่ 11/11/2554 ถึงวันที่ 15/11/2554 จะออกแบบนี้ครับ

11/11/2554 ยอดรวม 500
12/11/2554 ยอดรวม 100
13/11/2554 ยอดรวม 150
14/11/2554 ยอดรวม 250
15/11/2554 ยอดรวม 300
**ในส่วนนี้ผมต้องการให้มันออกเพียง
ยอดรวมตั้งแต่วันที่ 11/11/2554 ถึงวันที่ 15/11/2554 1300 บาท

มาดูตารางครับ
--------------------------------------------------------------------
frmPos หัวบิลครับ------------frmPos_d รายละเอียดการขายครับ
Sell_Id----------------------Sell_Id
Sell_Date------------------ Pro_Id
Sell_Time-------------------ProPrice
RepMoney-------------------ProNum
Exchange
Total
--------------------------------------------------------------------
SQL ครับ
SELECT Sum(tblpos.Total) AS total, tblpos.Sell_Date
FROM tblpos
GROUP BY tblpos.Sell_Date
HAVING (((tblpos.Sell_Date) Between [date1] And [date2]));


==================================================

2.รายงานรายละเอียดของสินค้าทั้งหมดที่ขายได้ในวันนั้นๆ และระหว่างช่วงเวลาครับ

ในส่วนนี้เมื่อคิวรี่ข้อมูลไม่ว่าจะเป็นการรายงานสินค้าที่ขายได้ใน 1 วัน หรือช่วงของวันจะมีข้อมูลออกมาแบบนี้ครับ
Sell_Id |Sell_Date |Pro_Id |Brand_Name |ProName |ProNum |ProPrice
5411000001 |19-พ.ย.-11 |8851959147719 |น้ำทิพย์ |น้ำดื่ม |3 |฿7.00
5411000003 |19-พ.ย.-11 |8851959147719 |น้ำทิพย์ |น้ำดื่ม |3 |฿7.00
5411000002 |19-พ.ย.-11 |8851228006624 |ดาร์ลี่ |ดับเบิ้ลแอ็คชั่น |2 |฿75.00
5411000010 |22-พ.ย.-11 |P00002 |โออิชิ |กรีนที รสเลม่อน |2 |฿18.00
5411000001 |19-พ.ย.-11 |P00001 |โออิชิ |ฟรุตโตะ กลิ่นสตอเบอร์รี่ |1 |฿15.00
5411000001 |19-พ.ย.-11 |P00002 |โออิชิ |กรีนที รสเลม่อน |1 |฿18.00
5411000003 |19-พ.ย.-11 |8850170000155 |กรองทิพย์ |บุหรี่ |1 |฿60.00
5411000004 |19-พ.ย.-11 |8851959147719 |น้ำทิพย์ |น้ำดื่ม |1 |฿7.00
5411000005 |19-พ.ย.-11 |P00001 |โออิชิ |ฟรุตโตะ กลิ่นสตอเบอร์รี่ |1 |฿15.00
5411000006 |19-พ.ย.-11 |P00002 |โออิชิ |กรีนที รสเลม่อน |1 |฿18.00
5411000007 |19-พ.ย.-11 |P00002 |โออิชิ |กรีนที รสเลม่อน |1 |฿18.00
5411000008 |19-พ.ย.-11 |P00002 |โออิชิ |กรีนที รสเลม่อน |1 |฿18.00
5411000009 |19-พ.ย.-11 |P00002 |โออิชิ |กรีนที รสเลม่อน |1 |฿18.00

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


ตารางเหมือนข้างบนเพียงแต่มีการดึงข้อมูลอีก 2 ตาราง คือ TblProduct และ TblBrand
SQL ครับ
SELECT TblPos.Sell_Id, TblPos.Sell_Date, TblPos_D.Pro_Id, TblBrand.Brand_Name, TblProduct.ProName, TblPos_D.ProNum, TblPos_D.ProPrice
FROM (TblBrand INNER JOIN TblProduct ON TblBrand.Brand_Id = TblProduct.Brand_Id) INNER JOIN (TblPos INNER JOIN TblPos_D ON TblPos.Sell_Id = TblPos_D.Sell_Id) ON TblProduct.Pro_Id = TblPos_D.Pro_Id
GROUP BY TblPos.Sell_Id, TblPos.Sell_Date, TblPos_D.Pro_Id, TblBrand.Brand_Name, TblProduct.ProName, TblPos_D.ProNum, TblPos_D.ProPrice
HAVING (((TblPos.Sell_Date) Between [1] And [2]))
ORDER BY TblPos_D.ProNum DESC;

ไม่ทราบ SQl Access จะคิวรี่ข้อมูลได้มั๊ยครับ ผมไม่แม่น SQL เลยครับ ส่วนมากจะคิวรี่จากแบบทดสอบ ช่วยให้คำแนะนำด้วยครับ

Top