17 กันยายน 2553

SQL เลือก ฟิววันที่ล่าสุด ของ อุปกรณ์แต่ละไอดี ที่ต้องการ

 จากภาพข้างบน หากจะเอาวันที่่ล่าสุดของ product_bind_id ซึ่งมันจะนำวันที่ล่าสุดมา แต่จะไม่เอา status_id ตามวันที่ล่าสุดมา
  แต่่หากจะเอามาต้องจะต้องมี SQL ดังข้างล่างครับ


SELECT tbl_check.check_date, tbl_check.product_bind_id, tbl_check.status_id
FROM tbl_check INNER JOIN tbl_product_bind  ON (tbl_check .product_bind_id = tbl_product_bind.product_bind_id)
WHERE  (tbl_check.product_bind_id, check_date) IN
 ( SELECT product_bind_id, MAX(check_date) FROM tbl_check GROUP BY product_bind_id)

จาก : http://stackoverflow.com/questions/121387/sql-fetch-the-row-which-has-the-max-value-for-a-column

หรืออีกหนึ่งทางเลือกจากพี่ปลาทู


select * FROM tbl_check WHERE tbl_check.check_date IN ( SELECT MAX(tcheck.check_date) FROM tbl_check tcheck GROUP BY tcheck.product_bind_id  );