 |
คำสั่ง sql ต้องการให้ out put ออกมาเป็น 1 : 1 record |
|
 |
|
|
 |
 |
|
ตามนี้เลยครับ
SELECT a.cust_id, a.hour_in1, a.min_in1, b.hour_in2, b.min_in2
FROM table1 a, table2 b
WHERE a.cust_id = b.cust_id
AND a.hour_in1 = b.hour_in2
AND (
a.min_in1 = b.min_in2
OR b.min_in2 = a.min_in1 +3
OR b.min_in2 = a.min_in1 +2
OR b.min_in2 = a.min_in1 +1
)
group by cust_id
order by cust_id,(min_in1-min_in2)
|
 |
 |
 |
 |
Date :
2011-06-16 11:56:45 |
By :
sakuraei |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
วัตถุประสงค์หลักคือต้องการหา ว่าใครมาทำงานภายใต้กรอบเวลา(ที่บันทึกใน table2)ไม่เกินสามนาทีจากที่กำหนดไว้ใน table1 หรือเปล่าครับ
|
 |
 |
 |
 |
Date :
2011-06-16 13:01:45 |
By :
sakuraei |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โค้ดชุดนี้ดีกว่าครับ
SELECT a.cust_id, a.hour_in1, a.min_in1, b.hour_in2, b.min_in2, min(min_in1-min_in2)
FROM t1 a, t2 b
WHERE a.cust_id = b.cust_id
AND a.hour_in1 = b.hour_in2
AND (a.min_in1- b.min_in2) <=3
group by cust_id
order by cust_id
|
 |
 |
 |
 |
Date :
2011-06-16 13:07:25 |
By :
sakuraei |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากนะคะ ใช้ได้เรยแหละค่ะ แต่ถ้าเกิดว่าข้อมูลมันเป็นแบบนี้
Table 1
cust_id name hour_in1 min_in1
0001 AAA 8 20
0001 AAA 8 23
0002 BBB 8 25
Table 2
cust_id name hour_in1 min_in1
0001 AAA 8 20
0001 AAA 8 21 *ไม่ให้แสดงที่ output
0001 AAA 8 24
0002 BBB 8 25
ใช้เงื่อนไข +-3 นาที เหมือนเดิม อยากได้ output แบบด้านล่างค่ะ (จะมีปัญหานิดหนึ่งคือที่
table1 AAA จะมี 2 records แต่ที่ table 2 AAA มี 3 records เวลามันจะไล่ๆ กัน
ถ้าใช้ group by AAA จะแสดงแค่ 1 record)
cust_id hour_in1 min_in1 hour_in2 min_in2
0001 8 20 8 20
0001 8 23 8 24
0002 8 25 8 25
|
 |
 |
 |
 |
Date :
2011-06-16 16:14:45 |
By :
yuri_arkin |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คิดถึงหลักการก่อนที่จะมาได้เอาพุทซิครับ ว่าจะเอา table1 เปรียบเทียบกับ table2 อย่างไร
ถ้าอธิบายให้ผมเข้าใจผมก็จะช่วยเขียน SQL ให้ได้ครับ
cust_id hour_in1 min_in1 hour_in2 min_in2
0001 8 20 8 20
0001 8 23 8 24
0002 8 25 8 25
|
 |
 |
 |
 |
Date :
2011-06-16 16:25:22 |
By :
sakuraei |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|