 |
|
Query last record in SQL ยังไงครับ โดยอ้างอิงที่เวลาครับ ช่วยหน่อยครับ |
|
 |
|
|
 |
 |
|
อธิบายเพิ่มเติมนิดครับ 
|
 |
 |
 |
 |
Date :
2014-08-30 08:46:15 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือมี station ที่ซ้ำกันมากกว่าหนึ่ง station แต่ต้องการข้อมูลที่ Scandate ล่าสุด โดย GROUP BY station ครับ
ข้อมูลที่ต้องการครับ
V
V

|
ประวัติการแก้ไข 2014-08-30 08:53:00 2014-08-30 09:01:38 2014-08-30 09:01:58
 |
 |
 |
 |
Date :
2014-08-30 08:51:19 |
By :
taung2525 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
select col1,col2,max(scandate) from xxxx group by col1,col2
|
ประวัติการแก้ไข 2014-08-30 10:10:15
 |
 |
 |
 |
Date :
2014-08-30 10:09:01 |
By :
gaowteen |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่ได้ครับยังมี station 1147 สองตัวครับมันต้องมีแค่ตัวเดียวครับ

|
 |
 |
 |
 |
Date :
2014-08-30 10:21:58 |
By :
taung2525 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันมีตัวเดียวไม่ได้ ครับ เพราะ pn มัน ไม่เหมือนกัน เพราะ เรา group by pn ด้วย
|
 |
 |
 |
 |
Date :
2014-08-30 10:35:54 |
By :
gaowteen |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ท่านไหนทำได้ช่วยหน่อยครับ
|
 |
 |
 |
 |
Date :
2014-08-30 10:37:50 |
By :
taung2525 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
select * from
(select col_ID,max(scandate) as scandate from table1 group by col_ID) a
inner join table1 b on a.col_ID = b.col_ID and a.scandate = b.scandate
แก้ไขชื่อ table ให้แล้วเป็น table เดียวกันนนะ ลองดู ครับ
|
ประวัติการแก้ไข 2014-08-30 10:51:03 2014-08-30 11:01:15 2014-08-30 11:01:18 2014-08-30 11:04:14
 |
 |
 |
 |
Date :
2014-08-30 10:50:45 |
By :
gaowteen |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่ได้ครับ
|
 |
 |
 |
 |
Date :
2014-08-30 11:12:23 |
By :
taung2525 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอดู query ทั้งหมดหน่่อย ครับ
|
 |
 |
 |
 |
Date :
2014-08-30 11:26:05 |
By :
gaowteen |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้แล้วครับ Thank you ครับ
strSQL = "select * from (select station,max(scandate) as scandate from tbl_prodscan WHERE ProdOrder ='" & Me.txtWO.Text & "' group by station) a inner join tbl_prodscan b on a.station = b.station and a.scandate = b.scandate "
อธิบายให้หน่อยครับมือใหม่ครับ
|
 |
 |
 |
 |
Date :
2014-08-30 11:56:42 |
By :
taung2525 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้ ผมคิดเอาเองนะ ไม่รู้คนอื่นเขาทำแบบนี้ป่าว
select *
from (
-- อันนี้เหมือนกับสร้าง table ใหม่ ที่มี แต่ station,กับ scandate ล่าสุด เพื่อ สร้างเป็น ไฟร์มารี่ คีย์
select station,max(scandate) as scandate
from tbl_prodscan group by station) a
-- พอได้ ไฟร์มารี่ คีย์ มาแล้วถึงเอามา inner join กับข้อมูลที่จะเอา มันก็จะคัดแต่เฉพราะ เวลาล่าสุด ของ station นั้นๆมา
inner join tbl_prodscan b on a.station = b.station and a.scandate = b.scandate
ผมก็อยาากรู้วิธีที่คนอื่นทำเหมือนกันว่าาเขาทำยังไง
|
ประวัติการแก้ไข 2014-08-30 12:17:14
 |
 |
 |
 |
Date :
2014-08-30 12:16:40 |
By :
gaowteen |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
SELECT TOP(1) * FROM ตาราง ORDER BY ScanDate DESC;
|
 |
 |
 |
 |
Date :
2014-09-12 10:37:35 |
By :
wad |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
select a.*
from
tbl_prodscan a
join
(
select Station, MAX(ScanDate) as LastScanDate
from tbl_prodscan
group by Station
) b on a.Station = b.Station and a.ScanDate = b.LastScanDate
order by a.Station
แค่นี้ก็พอมั้งครับ
|
 |
 |
 |
 |
Date :
2014-09-12 15:55:42 |
By :
gunnermontana |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ก็ select Max(sacdate) มาแล้วมันก็ได้แค่อันสุดท้ายอะนะ
หรือ select มาหมดนั่นแหละ และ order by sacandate desc แล้วเอามาใช้แค่แถวแรก
|
 |
 |
 |
 |
Date :
2014-09-13 12:49:47 |
By :
zarooman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มีมะม่วง 10 ลูก อยู่ในตระกร้าใบเดียวกัน หยิบมากินลูกหนึ่ง คำถาม?
--- หยิบลูกไหนไปล่ะ (มันเหมือนกัน)
--- Max(Date) ก็เช่นเดียวกันครับ
|
 |
 |
 |
 |
Date :
2014-09-13 20:03:53 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|