【发布时间】:2014-06-23 10:03:37
【问题描述】:
我有两个表连接,我想要一个显示所有匹配和不匹配行的结果。在 SQL 中可以吗?
这些是表和查询...
CREATE TABLE #Day (id int, EID int, PID varchar(10), [Day] int, Shift varchar(10))
CREATE TABLE #Night (id int, EID int, PID varchar(10), [Day] int, Shift varchar(10))
INSERT INTO #Day
SELECT Atten_ID, EID, PID, DATEPART(DD,in_time) AS [Day], shift
FROM Attendance
WHERE (shift = 'D')
INSERT INTO #Night
SELECT Atten_ID, EID, PID, DATEPART(DD,in_time) AS [Day], shift
FROM Attendance
WHERE (shift = 'N')
SELECT #Day.EID, #Day.PID, #Day.Day, #Day.Shift AS DShift, #Night.Shift AS NShift
FROM #Day
JOIN #Night ON #Day.EID = #Night.EID
AND #Day.PID = #Night.PID
AND #Day.Day = #Night.Day
结果应该是这样的……
EID | PID | Day | DShift | NShift
______________________________________
100 | S001 | 01 | D | N
100 | S001 | 02 | D | -
100 | S001 | 03 | - | N
【问题讨论】:
-
你的意思是像FULL OUTER JOIN?
标签: c# sql .net sql-server join