|
|
|
สอบถามวิธีการเขียน SQL SERVER โดยดึงข้อมูล 2 Table มาแสดงค่ะ |
|
|
|
|
|
|
|
ใช้พวกคำสั่งตระกูล JOIN ครับ (inner join, left join, right join) ในเว็บนี้ก็มีสอน
แต่ว่านะข้อมูลในภาพที่ให้มาแน่ใจว่าถูกต้องไหมครับเพราะเหมือนข้อมูลมันจะไม่ตรงกันหลายจุด เช็คข้อมูลอีกทีดีกว่า
|
|
|
|
|
Date :
2014-06-25 17:16:42 |
By :
deksoke |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รู้สึกจะเพี้ยน ๆ น่ะครับ ข้อมูล
|
|
|
|
|
Date :
2014-06-26 07:50:57 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
select a.*, b.Type from table1 as a left join table2 as b on a.Code=substring(b.Code,4,4)
ตรง substring() ผมไม่แน่ใจวา SQL Server ใช้ MID หรือเปล่านะครับ
แต่ก็แนวนี้่นะครับ
ปล. ข้อมูลไม่ได้เพี้ยนหลอกครับ ก็แค่เก็บ code 4 ตัวหลัง ใน transection เท่านั้นครับ
เหมือนกับเมื่อก่อนเราเก็บวันที่เป็น 011257 เพราะไม่มี field type date ไว้เก็บวันที่ เจ๋งๆ เหมือนเดี๋ยวนี้
|
ประวัติการแก้ไข 2014-06-26 08:16:16
|
|
|
|
Date :
2014-06-26 08:10:41 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ข้อมูลมันขัดแย้ง กับผลลัพธ์นะ
select a.*, b.Type from tbl01 as a left join tbl02 as b on a.Code=right(b.Code,4)
ผลลัพธ์น่าจะได้ออกมา 20 record
date code type
01/04/2014 6868 01
01/04/2014 6868 02
02/04/2014 6868 01
02/04/2014 6868 02
03/04/2014 6868 01
03/04/2014 6868 02
04/04/2014 6868 01
04/04/2014 6868 02
05/04/2014 6868 01
05/04/2014 6868 02
01/04/2014 6800 01
01/04/2014 6800 02
02/04/2014 6800 01
02/04/2014 6800 02
03/04/2014 6800 01
03/04/2014 6800 02
04/04/2014 6800 01
04/04/2014 6800 02
05/04/2014 6800 01
05/04/2014 6800 02
|
|
|
|
|
Date :
2014-06-26 15:53:08 |
By :
vbcrazy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|