 |
|
ขอความช่วยเหลือเรื่อง SQL หน่อยค่ะ เกี่ยวกับคำสั่งในการ SELECT ข้อมูล(vb.net) |
|
 |
|
|
 |
 |
|
ควรจะเอา statement ที่ทำมาแสดงด้วยนะครับ
แต่ดูจากความต้องการแล้ว
ต้องมี field เวลา เข้ามาเกี่ยวข้องด้วยนะครับ โดย field เวลา บอกสถนะครั้งสุดท้ายครับ
ก็น่าจะเขียนแบบนี้ได้นะครับ
Code (SQL)
select a.รหัสพนักงาน, a.ชื่อพนักงาน, a.ห้อง, a.สถานะ, a.เวลา
from ( select รหัสพนักงาน, max(เวลา) mtime from tablename where สถานะ='IN' group by รหัสพนักงาน) as b
left join tablename as a on a.รหัสพนักงาน = b.รหัสพนักงาน and a.เวลา=b.mtime
|
 |
 |
 |
 |
Date :
2014-08-04 11:43:18 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณคุณ Chaidhanan มากค่ะ
แต่ทดลองแล้วไม่ได้อ่ะค่ะ มัน Error ไม่รู้ Error ตรงไหน เพราะลอง Query ใน mysql ดู มันไม่บอกว่า Error ตรงไหนอ่ะค่ะ
อันนี้เป็นคำสั่งที่พิมพ์ไป
Select a.IDEm,a.NameH,a.StatusH,a.timeH FROM (Select IDEm, Max(timeH) mtime from history_cardb where statusH = 'IN' group by IDEm) as b left join history_cardb as a on a.IDEm = b.IDEm and a.timeH = b.mtime
|
 |
 |
 |
 |
Date :
2014-08-04 12:07:36 |
By :
mayapopy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
select a.u_id, a.u_name, a.room, a.status, a.Etime
from ( select u_id, max(Etime) mtime from bell where status='IN' group by u_id) as b
left join bell as a on a.u_id = b.u_id and a.Etime=b.mtime
ก็ทำได้นี่ครับ

|
ประวัติการแก้ไข 2014-08-04 12:43:02
 |
 |
 |
 |
Date :
2014-08-04 12:12:01 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้ายังไงขอ structure ของ table มาดุด้วยครับ
|
 |
 |
 |
 |
Date :
2014-08-04 12:47:18 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันเป็นแบบนี้อ่ะค่ะ ยังไม่ได้เลย ไม่รู้ทำไม


|
 |
 |
 |
 |
Date :
2014-08-04 13:27:26 |
By :
mayapopy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แต่ตอนนี้คิดวิธีใหม่ออกแล้ว แต่..ออกแนวติงต๊องหน่อยๆ ก็คือ ไปสร้างอีกตารางนึง พอบันทึกข้อมูล การเข้าออกเสร็จ ก็ให้มันมาใส่ข้อมูลในตารางนี้ด้วย
-ถ้าเป็น IN ก็ให้มันเข้าไปบันทึกข้อมูลในตารางนี้ ว่ามีพนักงานชื่ออะไร ห้องอะไร อยู่ในห้องนี้
-ถ้าเป็น OUT ก็ให้มันเข้าไปลบข้อมูลของพนักงานคนนั้นออก ตามห้องที่เข้าอยู่
แล้วพอดึงรายงานก็ให้มันดึงจากตารางใหม่นี้ มันก็จะเหลือเฉพาะคนที่ยังอยู่(คนที่ Out ลบทิ้งหมด)
ติ๊งต๊องม่ะคะ อิอิ^^ แต่ถ้าเอาแค่ผลก็ได้ตามที่ User ต้องการนะ
ขอบคุณคุณ Chaidhanan มากๆเลยนะคะ ที่มาช่วยตอบกระทู้
|
 |
 |
 |
 |
Date :
2014-08-04 13:32:06 |
By :
mayapopy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ที่เออเร่อร์ มันบอกว่าไม่ได้เลือก database อะครับ เลือก database ก่อนก็ได้แล้วครับ doubleclick ที่ database ที่ต้องการ
แล้ว คิวรี่ใหม่ครับ
ปล. ที่อันอื่นคิวรี่ได้เพราะ มีชื่อ database อยู่หน้า ชื่อ table ด้วยครับ อันที่คุณคิวรี่แล้วเออเร่อร์ ไม่ได้มีชื่อ database อยู่หน้า ชื่อ table
|
ประวัติการแก้ไข 2014-08-04 13:54:34
 |
 |
 |
 |
Date :
2014-08-04 13:50:52 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ๋อ เดี๋ยวกลับบ้านจะไปลองดูค่ะ ขอบคุณมากๆเลยนะคะ
|
 |
 |
 |
 |
Date :
2014-08-04 17:31:11 |
By :
mayapopy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|