 |
|
สอบถามเรื่องการคำนวณจำนวนรายการการให้บริการในแต่ละวันค่ะ |
|
 |
|
|
 |
 |
|
เป็นเรื่องการออกแบบ database
กับตารางแบบ column span head แค่นั้นเอง
แต่ที่สำคัญสุดคือ การออกแบบฐานข้อมูล
ต้องออกแบบอย่างนี้มั้ง
- id
- วันที่
- ประเภทบริการ (ล้างรถ/ขัดสี/ล้างห้องเครื่อง)
- ผู้ออกใบขาย (หน้าร้าน/พนักงานขาย)
แล้วๆ query โดย groupๆๆๆ ให้ออกมาเป็นตารางสรุปแบบด้านบน
|
 |
 |
 |
 |
Date :
2010-07-01 11:43:47 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
งง อะไรกันหว่า ดูไม่ยู้เยี่ยงเยย ผมคงฉลาดน้อยเกินไป
เอาเป็นว่านะ ที่นิยมที่สุดดูเหมือนจะเป็น Crystal Report
แต่ถ้าอยากเล่นของยากก็ใช้ System.Drawing ออกแบบรายงานเอาก็ได้
|
 |
 |
 |
 |
Date :
2010-07-01 11:45:14 |
By :
whiteshark |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เผื่อใครงง ตารางจริงๆ เป็นแบบนี้

จขกท นี้ cap รูปมาให้หน่อยก็ไม่ได้ คนอื่นจะได้เข้าใจง่ายๆ -_-"
|
 |
 |
 |
 |
Date :
2010-07-01 11:52:47 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
cross-tab report ความยากระดับ classic นะคะนั่นอะ
ขอ table structure ที่เกี่ยวข้อง กะความสัมพันธ์ด้วยค่ะ
ต่อไปจะเทียบแยกเฉพาะรายการ
แล้วเทียบเวลาเป็น เดือน ไตรมาส แล้วก้อปี
งานนี้มี temp table ค่ะ กับ query ยาวๆหูดับตับไหม้ค่ะ
|
 |
 |
 |
 |
Date :
2010-07-01 12:15:18 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เย้ย!! เขาถามแค่ 1 ตอบไปซะ 10 ให้ จขกท เขาลองแก้เองบ้างเถอะ
ใจจริงก็อยากฟังคำตอบเหมือนกันนะ แต่พักผ่อนมั่งก็ดี
พักผ่อนน้อย + อากาศเปลี่ยน เดี๋ยวได้ป่วยกันพอดี
|
 |
 |
 |
 |
Date :
2010-07-01 12:41:27 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ป่วยไปก้อรักษาเอาตามมีตามเกิดค่ะ แต่ไม่เป็นรัยหรอก
ลูกสาวบ้านนี้ตายยากค่ะ
ป่าวจะทำให้ก้อจะแนะๆไปอะค่ะ
|
 |
 |
 |
 |
Date :
2010-07-01 12:50:24 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าจะเอาหมดนี่ก็ทำให้ไปเลยมั้ย โห....เทพมาเอง
|
 |
 |
 |
 |
Date :
2010-07-01 12:53:17 |
By :
whiteshark |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
555+ ขอบคุณคุณ tungman ที่ cap รูปมาให้นะค่ะ ไม่ทันคิดจริงๆค่ะ
1. เรื่องของ database เราไม่สามารถออกแบบใหม่ได้ค่ะ เราต้องเอาที่เคยสร้างไว้แล้วมาใช้ค่ะ
รูปแบบรายงานมันจะออกมาประมาณนี้ค่ะ

2. อันนี้คือตาราง 2 ตารางที่เราต้องจอยกันเอาข้อมูลมันออกมา

inv_invoiceheader
name : รหัส invoice
invoicedate : วันที่ออก invoice
Flag : บอกว่าขายโดยใคร หน้าร้าน/พนักงานขาย/อื่นๆ
---------------
inv_invoicedetail
name : รหัส invoice
quantity : จำนวน
sku : รหัสสินค้า
serviceid : รหัสการให้บริการ
ืnet : จำนวนเงินสุทธิ (สำหรับคิดจำนวน TOTAL)
--------------------
รบกวนด้วยนะค่ะ cross-tab report นี่ยังไม่เคยใช้งานจริงเลยค่ะ
ขอบคุณทุกคำตอบด้วยค่ะ
|
 |
 |
 |
 |
Date :
2010-07-01 14:07:17 |
By :
somooo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
table น่าจะยังไม่ครบนะคะ มันน่าจะมี item category หรือ service category
สังเกตุจาก หัวรายงานที่มีการ merge สองแถว น่ะค่ะ
แล้วช่วยกรุณา อธิบาย จุดประสงค์การใช้งานของ สองตาราง
และรายละเอียดของแต่ละฟิลด์ด้วยค่ะ
หรือถ้าทำ DATADICT แล้วก็เอามาแปะเลยค่ะ
โดยเฉพาะตาราง inv_invoicedetail ค่ะ
|
 |
 |
 |
 |
Date :
2010-07-01 19:08:00 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอาแบบตัวอย่างนิดๆ พอให้เข้าใจได้มั้ยคะ เด๋วให้คุณ blureyes ทำมากเกินไป เกรงใจค่ะ เอาแบบพอเป็นแนวทางสักบริการนึง แล้วเราก็สามารถเขียนเพิ่มเองได้แบบไปทางขวาอะค่ะ อยากได้เพิ่มเท่าไหร่ก็เขียนเพิ่มเอาเอง ประมาณนี้ค่ะ
|
 |
 |
 |
 |
Date :
2010-07-05 18:16:27 |
By :
somooo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เริ่มด้วยตั้งแกนของรายงายขึ้นมาก่อน
แล้วแต่ว่าจะใช้อะไรอะค่ะ ถ้าข้อมูลมีซ้ำกันก้อ distinct ออกไป
อย่างตัวอย่างนี่คือ วันที่ค่ะ ต้อง build query ให้ได้วันที่ออกมา
จากนั้นมาพิจารณาคอลัมภ์ว่ามีข้อมูลที่สัมพันธ์กับ
ตัว field ที่ตั้งแกนรายงานอย่างไร อาจมีการ ใช้สมการหรือ aggregate function
ในช่วงนี้เพื่อใช้เชื่อมกันกับ field แกนรายงานแบบ one-one
และทำซ้ำไปเรื่อยๆจนครบทุกคอลัมภ์ค่ะ
cross tab report มีหลักการเท่านี้ค่ะ
|
 |
 |
 |
 |
Date :
2010-07-05 20:11:58 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอรบกวนดูโค๊ตสักชุดนึงได้มั้ยคะ
|
 |
 |
 |
 |
Date :
2010-07-06 09:14:29 |
By :
somooo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พอดีเขียนคิวรี่ดึงออกมาตัวนึงของ TKD
SELECT invoicedate,SUM(TKD_D) AS D,SUM(TKD_S) AS S,SUM(TKD_A) AS A
FROM
(SELECT * FROM
(SELECT a.invoicedate,b.serviceid,SUM(b.quantity) AS TKD_D ,0 AS TKD_S, 0 AS TKD_A
FROM inv_invoiceheader a inner join inv_invoicedetail b on a.name = b.name
WHERE a.flag ='หน้าร้าน' GROUP BY a.invoicedate,b.serviceid)
UNION ALL
(SELECT a.invoicedate,b.serviceid,0 AS TKD_D,SUM(b.quantity) AS TKD_S ,0 AS TKD_A
FROM inv_invoiceheader a inner join inv_invoicedetail b on a.name = b.name
WHERE a.flag ='พนักงานขาย' GROUP BY a.invoicedate,b.serviceid)
UNION ALL
(SELECT a.invoicedate,b.serviceid,0 AS TKD_D,0 AS TKD_S,SUM(b.quantity) AS TKD_A
FROM inv_invoiceheader a inner join inv_invoicedetail b on a.name = b.name
WHERE a.flag ='AA' GROUP BY a.invoicedate,b.serviceid)) T
WHERE Year(T.InvoiceDate) = 2010 AND Month(T.InvoiceDate)=5 AND T.serviceid = '2001'
GROUP BY T.invoicedate
แล้วมัน error รันไม่ได้ ใน mysql นะค่ะ ไม่ทราบว่าเพราะอะไรใครทราบบ้างคะ
|
 |
 |
 |
 |
Date :
2010-07-07 13:48:13 |
By :
somooo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
งั้น ขอ script gen table ที่เกี่ยวข้องจาก code มาละกันจะลองรันดูให้ค่ะ
นอนน้อยมาหลายวันละ มองเพียวๆแบบนี้มองไม่ออกหรอกค่ะ
ไม่ต้องทำเองนะคะ ใช้ mysql query browser ไป click ขวา ที่ชื่อ table จะมี popup โผล่มา

มานจะเก็บมาใน clipboard อะค่ะ
ก้อทยอยเอามา patse ละกัน
|
 |
 |
 |
 |
Date :
2010-07-07 14:54:24 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่เป็นไรค่ะ พอดีตอนนี้เปลี่ยนคำสั่งแล้ว ใช้งานได้ตามที่ต้องการแล้วค่ะ ขอบคุณมากๆเลยนะค่ะ
พักผ่อนด้วยนะค่ะคุณ blurEyes
|
 |
 |
 |
 |
Date :
2010-07-08 11:21:29 |
By :
somooo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณค่า ^^
|
 |
 |
 |
 |
Date :
2010-07-08 11:35:19 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|