 |
สอบถาม การเขียน ตารางแบบ matrix หน่อยครับ php ระบบขายสินค้าร้านสหกรณ์ |
|
 |
|
|
 |
 |
|
ผมจะคิวรี่มัน3 รอบเลยครับ อ่านแล้วอย่างงนะ เพราะผมก็งงฮาๆๆๆ
Code (PHP)
Loop1. WHERE order_date = $ปีที่ต้องการแสดง GROUP BY member_id
{ // $x หาไปทีละคน
Loop2 เอา member id ที่คิวรี่ได้มา loop ต่อว่ามีเดือนอะไรบ้าง ไล่ไปจากเดือน 1 //$i
{
WHERE member_id = ที่คิวรี่มา AND เดือน=$i AND ปี=$ปีที่ต้องการแสดง
เปิดTd และแสดงผล ทำไปเรื่อยจน $i>12 ก็ให้หยุด
$i++;
}
เสร็จลูปก็ได้ 1 คนวนขึ้นไปใหม่และเปิด tr เช็คไปเรื่อยว่ามีคนต่อไปมั้ย
$x++;
}
|
 |
 |
 |
 |
Date :
2014-11-16 20:40:08 |
By :
meannerss |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
$sql="
select
m.id, m.name
sum(m01.total), sum(m02.total), sum(m03.total), sum(m04.total), sum(m05.total), sum(m06.total),
sum(m07.total), sum(m08.total), sum(m09.total), sum(m10.total), sum(m11.total), sum(m12.total)
from (
select member.id, member.name,
'2013-01' z01, '2013-02' z02, '2013-03' z03, '2013-04' z04, '2013-05' z05, '2013-06' z06,
'2013-07' z07, '2013-08' z08, '2013-09' z09, '2013-10' z10, '2013-11' z11, '2013-12' z12
from member
) as m
left join view_order m01 on substring( m01.order_date , 1, 7)=m.z01
left join view_order m02 on substring( m02.order_date , 1, 7)=m.z02
left join view_order m03 on substring( m03.order_date , 1, 7)=m.z03
left join view_order m04 on substring( m04.order_date , 1, 7)=m.z04
left join view_order m05 on substring( m05.order_date , 1, 7)=m.z05
left join view_order m06 on substring( m06.order_date , 1, 7)=m.z06
left join view_order m07 on substring( m07.order_date , 1, 7)=m.z07
left join view_order m08 on substring( m08.order_date , 1, 7)=m.z08
left join view_order m09 on substring( m09.order_date , 1, 7)=m.z09
left join view_order m10 on substring( m10.order_date , 1, 7)=m.z10
left join view_order m11 on substring( m11.order_date , 1, 7)=m.z11
left join view_order m12 on substring( m12.order_date , 1, 7)=m.z12
group by m.id
";
|
 |
 |
 |
 |
Date :
2014-11-16 20:41:59 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับ เดี๋ยวผมขอลองก่อนนะครับ
|
 |
 |
 |
 |
Date :
2014-11-16 20:49:25 |
By :
bcmeanzap |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
left join view_order m01 on substring( m01.order_date , 1, 7)=m.z01
พลาดไปนิด ครับ ลืม m.id=m01.member_id and ใส่ทุกอันนะครับ
left join view_order m01 on m.id=m01.member_id and substring( m01.order_date , 1, 7)=m.z01
|
ประวัติการแก้ไข 2014-11-16 21:06:33
 |
 |
 |
 |
Date :
2014-11-16 21:03:43 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณพี่ Chaidhanan ที่มาช่วยครับ อยากจะรบกวนอีกครั้งนึงครับ

คือผม query ออกมาแล้ว ตรง sum มันผิด
แก้ตรงไหน ยังไงครับ
|
 |
 |
 |
 |
Date :
2014-11-17 17:45:04 |
By :
bcmeanzap |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
วิธีเทสต ครับ
select member_id, total from view_order
where member_id = 'idของคุณสมชาย'
and order_date >'2014-01-01'
order by order_date
|
 |
 |
 |
 |
Date :
2014-11-17 18:09:21 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้ของ สมหญิงครับ

เดือน 10 ต้อง 8 บาท แต่เป็น 24
เดือน 11 ถูกแล้ว 170 บาท ครับ
|
 |
 |
 |
 |
Date :
2014-11-17 18:58:09 |
By :
bcmeanzap |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รูปภาพที่ เอามาให้ ดู อันแรกที่ผิด น่ะครับ สีเขียวคาดเหลือง ใช้โปรแกรมอะไรทำครับ
ลองโค๊ดจาก phpmyadmin ตรงๆ เลยผิดหรือเปล่าครับ
|
 |
 |
 |
 |
Date :
2014-11-17 19:09:37 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้ mysql front 5.0 ครับ

ผมลอง phpmyadmin เหมือนกันครับ
เหมือนประมาณว่า ซื้อหลายๆชิ้นมัน คูณกันเข้าไปอีก - -"
อย่างของ สมชาย เดือนที่ 9 กับ 10 ซื้อแค่ 8 บาท ถูกต้องแล้วครับ
|
ประวัติการแก้ไข 2014-11-17 19:23:54
 |
 |
 |
 |
Date :
2014-11-17 19:21:45 |
By :
bcmeanzap |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ช่วย คิวรี่ เอา member_id, order_date กับ total มาให้ลอง หน่อยได้ไหมครับ ของ ซัก 3 id
|
 |
 |
 |
 |
Date :
2014-11-17 19:29:32 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

อันนี้ฐานข้อมูลนะครับ
http://www.system-4x.com/sale_project.zip
รบกวนหน่อยนะครับ
|
 |
 |
 |
 |
Date :
2014-11-17 19:37:19 |
By :
bcmeanzap |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอโทษครับ โค๊ดเดิมไม่ work ครับ แค่ 1000 รายการ ก็เดี้ยงแล้วครับ
สร้าง วิว ไว้ก่อนครับ แล้ว ค่อยคิวรี่ ที หลัง มันจะ ใช้ tempfile ในการคิวรี่ ถ้าทำแบบ โค๊ดเก่า มัน ทำทุกขั้นตอน
Code (SQL)
# Create View
CREATE
ALGORITHM = UNDEFINED
VIEW `member_sum_month`
AS SELECT member_id as id, substring(order_date, 1,7) as dte, sum(total) as total
FROM `view_order` group by member_id, substring( order_date, 1, 7)
Code (SQL)
select
m.id, m.name
, m01.total, m02.total, m03.total
, m04.total, m05.total, m06.total
, m07.total, m08.total, m09.total
, m10.total, m11.total, m12.total
from (
select id , name
, '2014-01' z01, '2014-02' z02, '2014-03' z03
, '2014-04' z04, '2014-05' z05, '2014-06' z06
, '2014-07' z07, '2014-08' z08, '2014-09' z09
, '2014-10' z10, '2014-11' z11, '2014-12' z12
from member
) as m
left join member_sum_month m01 on m01.id=m.id and m01.dte=m.z01
left join member_sum_month m02 on m02.id=m.id and m02.dte=m.z02
left join member_sum_month m03 on m03.id=m.id and m03.dte=m.z03
left join member_sum_month m04 on m04.id=m.id and m04.dte=m.z04
left join member_sum_month m05 on m05.id=m.id and m05.dte=m.z05
left join member_sum_month m06 on m06.id=m.id and m06.dte=m.z06
left join member_sum_month m07 on m07.id=m.id and m07.dte=m.z07
left join member_sum_month m08 on m08.id=m.id and m08.dte=m.z08
left join member_sum_month m09 on m09.id=m.id and m09.dte=m.z09
left join member_sum_month m10 on m10.id=m.id and m10.dte=m.z10
left join member_sum_month m11 on m11.id=m.id and m11.dte=m.z11
left join member_sum_month m12 on m12.id=m.id and m12.dte=m.z12
group by m.id
|
 |
 |
 |
 |
Date :
2014-11-17 21:17:19 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณพี่ Chaidhanan อีกครั้งครับ
ได้เรียบร้อยครับ ไว้จะมาถามใหม่ครับ ถ้าติดตรงไหน แหะๆ 
|
 |
 |
 |
 |
Date :
2014-11-17 21:31:54 |
By :
bcmeanzap |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ข้องใจ โค๊ด เลยเอาไปลอง จนได้ แบบนี้
Code (SQL)
select
m.id, m.name
, sum(total * (od='2014-01') ) Jan
, sum(total * (od='2014-02') ) Feb
, sum(total * (od='2014-03') ) Mar
, sum(total * (od='2014-04') ) Apr
, sum(total * (od='2014-05') ) May
, sum(total * (od='2014-06') ) Jun
, sum(total * (od='2014-07') ) Jul
, sum(total * (od='2014-08') ) Aug
, sum(total * (od='2014-09') ) Sep
, sum(total * (od='2014-10') ) Oct
, sum(total * (od='2014-11') ) Nov
, sum(total * (od='2014-12') ) `Dec`
from member m
left join (
select member_id as id, substring( order_date , 1, 7) od, sum(total) as total
from view_order group by member_id, substring( order_date , 1, 7)
) as vo on vo.id=m.id group by m.id
|
 |
 |
 |
 |
Date :
2014-11-18 10:47:35 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพิ่งมาเห็น สุดยอดครับ ได้เหมือนกัน สั้นกว่าเดิม
ขอบคุณอีกครั้งครับ
|
 |
 |
 |
 |
Date :
2014-11-22 09:17:41 |
By :
bcmeanzap |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เค้าคงไม่ติดปัญหาแล้วมั้งครับ กระทู้ 2014
|
ประวัติการแก้ไข 2018-01-25 15:54:53
 |
 |
 |
 |
Date :
2018-01-25 15:54:39 |
By :
dudesaranyu |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|