ขอความกรูณาท่านที่เก่ง sql แนะนำ sql หน่อยค่ะ คือมีตาราง 3 ตารางชื่อ t1,t2,t3 แต่ละตารางมีชื่อฟิลด์เหมือนกัน
คือมีตาราง 3 ตารางชื่อ t1,t2,t3 แต่ละตารางมีชื่อฟิลด์เหมือนกันคือ t1(id,date,userid,cid,sum) t2(id,date,userid,cid,sum) และ t3(id,date,userid,cid,sum) โดยที่ตารางที่ t1 เก็บผลรวมเงินของเดือนแรก ,t2 เก็บผลรวมเงินของเดือนที่2 ,t13 เก็บผลรวมเงินของเดือน ที่3
ไม่ทราบว่าจะเขียน sql อย่างไรเพื่อจะเอา ค่า cid ที่ตรงกันทั้ง 3 เดือนแล้วเอา sum ของแต่ละ cid มาเปรียบเทียบว่า ค่า sum ของเดือนที่ 1 > sum ของเดือนที่ 2 และค่า sum ของเดือนที่ 2 > sum ของเดือนที่ 3 อ่านแล้วอาจจะงงขอ ยกตัวอย่างนะคะ
เดือนที่ 1 ค่าอาหาร(cid) 100 บาท ค่าไฟ 50 บาท(sum)
เดือนที่ 2 ค่าอาหาร(cid) 300 บาท ค่าไฟ 70 บาท
เดือนที่ 3 ค่าอาหาร(cid) 400 บาท ค่าไฟ 100 บาท
ต้องการหาว่า รายการใช้จ่ายประเภทเดียวกันจากเดือนที่ 1 >เดือนที่ 2> เดือนที่ 3 หรือไม่(คือค่าใช้จ่ายเพิ่มขึ้นทุกเดิอน)จากด้านบนค่าอาหารเพิ่มขึ้น
ตอบด้วนะคะ เขียนมาหลายวันแล้วยังไม่ออก จนปัญญาจริงๆ ขอบคุณค่ะ
Tag : - - - -
Date :
20 ก.พ. 2551 11:05:11
By :
moonoi
View :
1750
Reply :
4
SELECT typ,SUM(cid) AS cid,SUM(sum) AS sum FROM(
SELECT T1 AS typ,id,date,userid,cid,sum FROM t1
union
SELECT T2 AS typ,id,date,userid,cid,sum FROM t2
union
SELECT T3 AS typ,id,date,userid,cid,sum FROM t3
) as TBSUM
GROUP BY typ,cid,sum
Date :
20 ก.พ. 2551 11:19:25
By :
???
typ คืออะไรคะ ไม่เข้าใจอะคะ
Date :
20 ก.พ. 2551 12:57:04
By :
moonoi
เป็นชิ่อ FLD ที่ สมมุต ขึ้น นะครับ จะมี ค่าเป็น T1 T2 และ T3 ตามลำดับ คัรบ
Date :
20 ก.พ. 2551 15:09:48
By :
???
คือว่า mysql version ที่ใช้ มันใช้ subquery ไม่ได้อะค่ะ ถ้าเขียนแบบอื่นได้มั้ยค่ะ คือไม่อยากเปลี่ยน version mysql รบกวนหน่อยนะคะ ขอความกรุณาตอบอีกครั้งนะคะ ขอบพระคุณค่ะ
Date :
20 ก.พ. 2551 16:32:23
By :
moonoi
Load balance : Server 02