ต้องการ join 2 ตาราง ที่มีข้อมูลแตกต่างกัน พอทำแล้วข้อมูลแสดงผลซ้ำกันค่ะ T_T รบกวนช่วยดูให้ทีจ้า
Code (ASP)
SELECT tu.uID,tu.uBefore,tu.uUp,tu.uDatetime,tp.pBefore,tp.pmoney,tp.pDatetime
FROM tableUp tu left outer join tablePay tp on tu.uID=tp.pID
WHERE CONVERT(nvarchar(10), tu.uDatetime,126)='2012-07-30'
AND tu.uID='00001' and tp.pID ='00001'
ORDER BY tu.uDatetime, tp.pDatetime
ที่ทำอยู่มี 2 ตารางค่ะ คือ
tableUp ตารางเติมเงิน
uID รหัส | uBefore ก่อนเติม | uUp เติม | uDatetime เวลาเติม
00001 | 0 | 50 | 2012-07-30 10:18:43.280
00001 | 0 | 120 | 2012-07-30 10:54:22.553
tablePay ตารางจ่ายเงิน
pID | pBefore ก่อนจ่าย | pPay จ่าย | pDatetime เวลาจ่าย
00001 | 50 | 30 | 2012-07-30 10:39:27.720
00001 | 20 | 10 | 2012-07-30 10:41:33.250
00001 | 10 | 10 | 2012-07-30 10:46:35.190
00001 | 120 | 30 | 2012-07-30 11:22:34.873
ที่รันได้ ตอนนี้
uID | uBefore | uUp | uDatetime | pBefore | pPay | pDatetime
00001 | 0 | 50 | 2012-07-30 10:18:43.280 | 50 | 30 | 2012-07-30 10:39:27.720
00001 | 0 | 120 | 2012-07-30 10:54:22.553 | 50 | 30 | 2012-07-30 10:39:27.720
00001 | 0 | 50 | 2012-07-30 10:18:43.280 | 20 | 10 | 2012-07-30 10:41:33.250
00001 | 0 | 120 | 2012-07-30 10:54:22.553 | 20 | 10 | 2012-07-30 10:41:33.250
00001 | 0 | 50 | 2012-07-30 10:18:43.280 | 10 | 10 | 2012-07-30 10:46:35.190
00001 | 0 | 120 | 2012-07-30 10:54:22.553 | 10 | 10 | 2012-07-30 10:46:35.190
00001 | 0 | 50 | 2012-07-30 10:18:43.280 | 120 | 30 | 2012-07-30 11:22:34.873
00001 | 0 | 120 | 2012-07-30 10:54:22.553 | 120 | 30 | 2012-07-30 11:22:34.873
ที่อยากได้ผลลัพธ์จริงๆ คือ
uID | uBefore | uUp | uDatetime | pBefore | pPay | pDatetime
00001 | 0 | 50 | 2012-07-30 10:18:43.280 | 50 | 30 | 2012-07-30 10:39:27.720
Null | Null | Null | Null | 20 | 10 | 2012-07-30 10:41:33.250
Null | Null | Null | Null | 10 | 10 | 2012-07-30 10:46:35.190
00001 | 0 | 120 | 2012-07-30 10:54:22.553 | 120 | 30 | 2012-07-30 11:22:34.873
รบกวนช่วยดู code ให้ทีค่ะ ต้อง join กันยังไงถึงจะไม่ให้เลขซ้ำกันได้ ติดหลายวันแล้ว มึนสุดๆ รบกวนผู้รู้ด้วยจ้า
ขอบคุณล่วงหน้ามากๆนะคะTag : .NET, Ms SQL Server 2005, Ms SQL Server 2008, Ms SQL Server 2012, C#, VS 2010 (.NET 4.x)
ประวัติการแก้ไข 2012-08-06 10:10:15
Date :
2012-08-06 10:09:22
By :
porn_toon
View :
1038
Reply :
2
tableUp ตารางเติมเงิน
uID รหัส | uBefore ก่อนเติม | uUp เติม | uDatetime เวลาเติม
00001 | 0 | 50 | 2012-07-30 10:18:43.280
00001 | 0 | 120 | 2012-07-30 10:54:22.553
tablePay ตารางจ่ายเงิน
pID | pBefore ก่อนจ่าย | pPay จ่าย | pDatetime เวลาจ่าย
00001 | 50 | 30 | 2012-07-30 10:39:27.720
00001 | 20 | 10 | 2012-07-30 10:41:33.250
00001 | 10 | 10 | 2012-07-30 10:46:35.190
00001 | 120 | 30 | 2012-07-30 11:22:34.873
2 Table นี้ ผมอยากรู้ว่า การทำงานของมันทำอย่างไร คือ แบบว่า Insert ที่ Table ไหนก่อน แล้วค่อยไป Insert ที่ Table ไหน อะไรประมาณนี้ครับ
uID (00001) ที่ Table tableUp มี 2 record แต่ทำไมที่ tablePay pID (00001) มีตั้ง 4 record
Date :
2012-08-06 10:42:44
By :
thep
เหมือนคุ้นๆ ว่าตอบไปแล้ว https://www.thaicreate.com/dotnet/forum/081613.html
ใช้ linq จนเริ่มลืม sql syntax แล้ว
ลองดู
Code (C#)
SELECT tu.uID,tu.uBefore,tu.uUp,tu.uDatetime,tp.pBefore,tp.pmoney,tp.pDatetime
FROM tableUp tu right outer join tablePay tp on tu.uID=tp.pID and tu.pBefore=tp.pBefore
ORDER BY tu.uDatetime, tp.pDatetime
Date :
2012-08-06 10:57:59
By :
อิอิ
Load balance : Server 05