ผมมีตารางการใช้งานโทรศัพท์ของแต่ละแผนกชื่อCopyCALLDATA โดยเก็บข้อมูลดังนี้
Code
EXTENSION | STARTDATE | AUTHCHARGE
3041 | 1/12/2554 | 21
3057 | 1/12/2554 | 15
3157 | 3/12/2554 | 18
3057 | 4/12/2554 | 6
3057 | 5/12/2554 | 18
3157 | 6/12/2554 | 21
3041 | 15/12/2554 | 24
EXTENSION ไว้เก็บหมายเลขภายใน
STARTDATE คือวันเดือนปีที่ใช้โทรศัพท์
AUTHCHARGE คือ ราคาค่าโทรศัพท์
ผมต้องการสรุปค่าโทรศัพท์ออกมาเป็นรายเดือนว่า แต่ละเบอร์มีค่าใช้จ่ายในการโทรเท่าใด ผมลองเขียน SQL ได้ดังนี้
Code
select EXTENSION,
sum(case when month(STARTDATE)=1 then AUTHCHARGE else 0 end) as [Jan],
sum(case when month(STARTDATE)=2 then AUTHCHARGE else 0 end) as [Feb],
sum(case when month(STARTDATE)=3 then AUTHCHARGE else 0 end) as [Mar],
sum(case when month(STARTDATE)=4 then AUTHCHARGE else 0 end) as [Apr],
sum(case when month(STARTDATE)=5 then AUTHCHARGE else 0 end) as [May],
sum(case when month(STARTDATE)=6 then AUTHCHARGE else 0 end) as [Jun],
sum(case when month(STARTDATE)=7 then AUTHCHARGE else 0 end) as [Jul],
sum(case when month(STARTDATE)=8 then AUTHCHARGE else 0 end) as [Aug],
sum(case when month(STARTDATE)=9 then AUTHCHARGE else 0 end) as [Sep],
sum(case when month(STARTDATE)=10 then AUTHCHARGE else 0 end) as [Oct],
sum(AUTHCHARGE) as Total
from CopyCALLDATA
where year(STARTDATE)=2554
group by EXTENSION
order by EXTENSION
ปรากฎว่ามันขึ้น ERROR ว่า "Syntax error (missing operator) in query expression 'sum(case when month(STARTDATE)=1 then AUTHCHARGE else 0 end)' "
ผมใช้ ACCESS 2007 ครับ ไม่ทราบว่าผิดตรงไหนรบกวนดูให้ด้วยครับ
ขอบคุณมากครับ
Tag : Ms Access