Page 1 of 2

function date time + mssql

Posted: 16/02/2007 1:51 am
by aunohara
ใช้คำสั่งอะไรในการเลือกวันที่ล่าสุดครับ (mssql น่ะครับ)

2007-02-15 13:00:09.000
2007-02-15 13:13:15.000
2007-02-15 13:15:07.000
2007-02-15 13:15:49.000
2007-02-15 13:23:20.000
2007-02-15 13:25:30.000

-----ผลลัพธ์------
2007-02-15 13:25:30.000

Posted: 16/02/2007 10:24 am
by mindphp
SELECT Max(DateTime]) FROM T

Posted: 16/02/2007 11:14 am
by aunohara
recdate----------------------------|regno---------------------------------|div-|-grp-|-su-|-se
2007-02-15 02:31:14.000 | กกจ.7440-001-0001 11/49 | 19 | 04 | 00 | 00
2007-02-15 02:32:33.000 | กกจ.7440-001-0001 11/49 | 16 | 00 | 00 | 00
2007-02-15 02:33:27.000 | กกจ.7440-001-0001 11/49 | 19 | 04 | 03 | 00

จากตาราง ผมต้องการแสดงข้อมูลทั้งหมด โดยเลือก วันที่บันทึกอันล่าสุด จะใช้คำสั่ง

select max(recdate),regno,div,grp,su,se from thistable group by regno,div,grp,su,se

ผลลัพธ์
recdate----------------------------|regno---------------------------------|div-|-grp-|-su-|-se
2007-02-15 02:32:33.000 | กกจ.7440-001-0001 11/49 | 16 | 00 | 00 | 00
2007-02-15 02:33:27.000 | กกจ.7440-001-0001 11/49 | 19 | 04 | 03 | 00

แต่ผลลัพธ์ที่ผมอยากได้คือ วันที่ล่าสุด 2007-02-15 02:33:27.000 ต้องเขียนยังไงครับ
จะตัด group by ออกก็ไม่ได้ หลัง group by ต้องใส่ column ที่เรา select มาทั้งหมด

Posted: 16/02/2007 11:53 am
by mindphp
ใส่ ORDER BY เข้าไป
ลอง ดู ที่
http://www.w3schools.com/sql/sql_groupby.asp

Posted: 16/02/2007 12:39 pm
by aunohara
order by ใช้จัดลำดับครับ ไม่สามารถเลือกได้ว่าจะเอาวันที่ล่าสุด เข้าไปดูเวบแล้วก็ไม่เห็นมีอะไร มีแค่ตัวอย่างธรรมดาๆที่รู้กันอยู่

ผมมีความรุ้แค่นี้ ยังไงก็ช่วยชี้แนะด้วยว่าใช้ order by ยังไง

Posted: 16/02/2007 2:51 pm
by mindphp
ตัว อย่าง ธรรมดาๆ ครับ ต้อง นำมาประยุคเอาล่ะครับ sql มันก็ อยู่แค่ นั้นล่ะครับ
ลอง เอา โครง สร้าง และ ข้อมูล ที่มี มาลง หน่อย คับ จะได้ช่วยกันดู

Posted: 16/02/2007 2:55 pm
by mindphp
ตัวอย่าง

SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC

Result:
Company OrderNumber
W3Schools 6798
W3Schools 2312
Sega 3412
ABC Shop 5678

Posted: 16/02/2007 4:49 pm
by aunohara
โครงสร้างตาราง และข้อมูลก็อย่างที่ผมโพสไปแหละครับ
ผมลอง select 2 ครั้งในคำสั่งเดียว ก็ได้แล้วครับ

select * from thistable where recdate in (select max(recdate) from thistable )

ผลลัพธ์
recdate----------------------------|regno-----------------------------------|div|-grp-|-su-|-se
2007-02-15 02:33:27.000 | กกจ.7440-001-0001 11/49 | 19 | 04 | 03 | 00

แต่คิดว่าความเร็วในการทำงานคงไม่เท่ากับ select ครั้งเดียว ช่วยชี้แนะด้วยน่ะครับ