ผู้เขียน หัวข้อ: สอบถามคำสั่ง if ซ้อนหลายชั้นหน่อยครับ  (อ่าน 6958 ครั้ง)

0 สมาชิก และ 2 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ yansue

  • Jr. Member
  • **
  • กระทู้: 98
  • Respect: +5
    • ดูรายละเอียด
สอบถามคำสั่ง if ซ้อนหลายชั้นหน่อยครับ
« เมื่อ: มิถุนายน 27, 2014, 11:59:55 AM »
0
ผมมีโจทก์ว่าจะให้ข้อมูลแสดงเป็น งวดตามไตรมาส โดยใช้คำสั่งนี้ครับ
select month(vstdate),if(month(vstdate) in(10,11,12),if(month(vstdate) in(1,2,3),"1","2"),
if(month(vstdate) in(4,5,6),"3","4"))
from ovst
GROUP BY month(vstdate)
ได้ผลตามภาพครับ งวดที่ 1 กลายเป็น 2 และสองกลายเป็น 4
รบกวนช่วยดูคำสั่งให้หน่อยครับว่าจะแสดงข้อมูลตามที่ต้องการได้ยังไง
ขอบคุณมากครับ
สถานีอนามัยตำบลข้าวงาม  อำเภอวังน้อย  จังหวัดพระนครศรีอยุธยา
e-mail: khaongamphc@gmail.com

HOSxP_PCU 3.63.10.5 & HOSxPXE PCU 4.64.11.3 Update
Host: Intel® Core™ i7-7700 @3.6 GHz RAM 8.0 GB Run on Windows 10 MySQL 5.5.31 Client 5 เครื่อง

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 414
  • Respect: +12
    • ดูรายละเอียด
Re: สอบถามคำสั่ง if ซ้อนหลายชั้นหน่อยครับ
« ตอบกลับ #1 เมื่อ: มิถุนายน 27, 2014, 13:21:36 PM »
0
select year(vstdate) year,month(vstdate) month
,date(date_format(vstdate,'%Y-%m-01')) firstday
,last_day(vstdate) lastday
,if(month(vstdate) in (10,11,12),1
,if(month(vstdate) in(1,2,3),2
,if(month(vstdate) in(4,5,6),3
,if(month(vstdate) in(7,8,9),4,0)))) TriMonth
from ovst
where vstdate between '2012-10-1' and '2013-9-30'
group by month
order by year,month
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง

ออฟไลน์ yansue

  • Jr. Member
  • **
  • กระทู้: 98
  • Respect: +5
    • ดูรายละเอียด
Re: สอบถามคำสั่ง if ซ้อนหลายชั้นหน่อยครับ
« ตอบกลับ #2 เมื่อ: มิถุนายน 27, 2014, 15:53:36 PM »
0
select year(vstdate) year,month(vstdate) month
,date(date_format(vstdate,'%Y-%m-01')) firstday
,last_day(vstdate) lastday
,if(month(vstdate) in (10,11,12),1
,if(month(vstdate) in(1,2,3),2
,if(month(vstdate) in(4,5,6),3
,if(month(vstdate) in(7,8,9),4,0)))) TriMonth
from ovst
where vstdate between '2012-10-1' and '2013-9-30'
group by month
order by year,month

ได้แล้วครับ ขอบคุณมากเลยครับ
สถานีอนามัยตำบลข้าวงาม  อำเภอวังน้อย  จังหวัดพระนครศรีอยุธยา
e-mail: khaongamphc@gmail.com

HOSxP_PCU 3.63.10.5 & HOSxPXE PCU 4.64.11.3 Update
Host: Intel® Core™ i7-7700 @3.6 GHz RAM 8.0 GB Run on Windows 10 MySQL 5.5.31 Client 5 เครื่อง