#ได้แล้วประมาณนี้ ไม่รู้ว่าถูกไหม
SELECT
p.pname,
p.fname,
p.lname,
#ครั้งที่ 1
CASE DAYOFWEEK(DATE_ADD(a.lmp,INTERVAL '10' WEEK))
WHEN 1 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '10' WEEK),INTERVAL 2 DAY)
WHEN 2 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '10' WEEK),INTERVAL 1 DAY)
WHEN 3 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '10' WEEK),INTERVAL 0 DAY)
WHEN 4 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '10' WEEK),INTERVAL -1 DAY)
WHEN 5 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '10' WEEK),INTERVAL -2 DAY)
WHEN 6 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '10' WEEK),INTERVAL -3 DAY)
WHEN 7 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '10' WEEK),INTERVAL -4 DAY)
else cast(a.lmp as date) end as date_1st,
#ครั้งที่ 2
CASE DAYOFWEEK(DATE_ADD(a.lmp,INTERVAL '18' WEEK))
WHEN 1 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '18' WEEK),INTERVAL 2 DAY)
WHEN 2 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '18' WEEK),INTERVAL 1 DAY)
WHEN 3 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '18' WEEK),INTERVAL 0 DAY)
WHEN 4 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '18' WEEK),INTERVAL -1 DAY)
WHEN 5 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '18' WEEK),INTERVAL -2 DAY)
WHEN 6 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '18' WEEK),INTERVAL -3 DAY)
WHEN 7 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '18' WEEK),INTERVAL -4 DAY)
else cast(a.lmp as date) end as date_2nd,
#ครั้งที่ 3
CASE DAYOFWEEK(DATE_ADD(a.lmp,INTERVAL '26' WEEK))
WHEN 1 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '26' WEEK),INTERVAL 2 DAY)
WHEN 2 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '26' WEEK),INTERVAL 1 DAY)
WHEN 3 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '26' WEEK),INTERVAL 0 DAY)
WHEN 4 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '26' WEEK),INTERVAL -1 DAY)
WHEN 5 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '26' WEEK),INTERVAL -2 DAY)
WHEN 6 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '26' WEEK),INTERVAL -3 DAY)
WHEN 7 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '26' WEEK),INTERVAL -4 DAY)
else cast(a.lmp as date) end as date_3rd,
#ครั้งที่ 4
CASE DAYOFWEEK(DATE_ADD(a.lmp,INTERVAL '32' WEEK))
WHEN 1 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '32' WEEK),INTERVAL 2 DAY)
WHEN 2 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '32' WEEK),INTERVAL 1 DAY)
WHEN 3 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '32' WEEK),INTERVAL 0 DAY)
WHEN 4 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '32' WEEK),INTERVAL -1 DAY)
WHEN 5 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '32' WEEK),INTERVAL -2 DAY)
WHEN 6 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '32' WEEK),INTERVAL -3 DAY)
WHEN 7 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '32' WEEK),INTERVAL -4 DAY)
else cast(a.lmp as date) end as date_4th,
#ครั้งที่ 5
CASE DAYOFWEEK(DATE_ADD(a.lmp,INTERVAL '38' WEEK))
WHEN 1 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '38' WEEK),INTERVAL 2 DAY)
WHEN 2 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '38' WEEK),INTERVAL 1 DAY)
WHEN 3 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '38' WEEK),INTERVAL 0 DAY)
WHEN 4 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '38' WEEK),INTERVAL -1 DAY)
WHEN 5 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '38' WEEK),INTERVAL -2 DAY)
WHEN 6 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '38' WEEK),INTERVAL -3 DAY)
WHEN 7 THEN DATE_ADD(DATE_ADD(a.lmp,INTERVAL '38' WEEK),INTERVAL -4 DAY)
else cast(a.lmp as date) end as date_5th
FROM person_anc as a
LEFT OUTER JOIN person as p on a.person_id=p.person_id
WHERE lmp > '2016-10-1'
ORDER BY
a.lmp ASC