我有一个复杂的 SQL 语句,当我加入这个“select”语句时遇到错误。他们提示我这个错误:
Join 表达式错误。无法解析查询文本。
我粘贴了我认为导致此错误的 SQL 语句。谁能告诉我哪里出了问题?我从来没有在这里粘贴整个 SQL 语句,因为我认为你们看到它会很困惑,如果你需要,请告诉我。有什么想法吗???
SELECT AllocationDate, LocationName, StationName, Hour1, Hour2, Hour3, Hour4, Hour5, Hour6, Hour7, Hour8, Hour9, Hour10, Hour11, Hour12, EmpName, ShiftTime,
BreakTime, SignIn, SignOut
FROM (SELECT z.AllocationDate, z.LocationName, z.StationName, a.Hour1, b.Hour2, c.Hour3, d .Hour4, e.Hour5, f.Hour6, g.Hour7, h.Hour8, i.Hour9, j.Hour10, k.Hour11,
l.Hour12, m.EmpName, m.ShiftTime, m.BreakTime, m.SignIn, m.SignOut
FROM (SELECT DISTINCT AllocationDate, LocationName, StationName
FROM satsschema.viewmain
WHERE (StationName IS NOT NULL)) z LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour1
FROM satsschema.view00000100) a ON z.LocationName = a.LocationName AND z.StationName = a.StationName AND
z.AllocationDate = a.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour2
FROM satsschema.view01000200) b ON z.LocationName = b.LocationName AND z.StationName = b.StationName AND
z.AllocationDate = b.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour3
FROM satsschema.view02000300) c ON z.LocationName = c.LocationName AND z.StationName = c.StationName AND
z.AllocationDate = c.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour4
FROM satsschema.view03000400) d ON z.LocationName = d .LocationName AND z.StationName = d .StationName AND
z.AllocationDate = d .AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour5
FROM satsschema.view04000500) e ON z.LocationName = e.LocationName AND z.StationName = e.StationName AND
z.AllocationDate = e.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour6
FROM satsschema.view05000600) f ON z.LocationName = f.LocationName AND z.StationName = f.StationName AND
z.AllocationDate = f.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour7
FROM satsschema.view06000700) g ON z.LocationName = g.LocationName AND z.StationName = g.StationName AND
z.AllocationDate = g.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour8
FROM satsschema.view07000800) h ON z.LocationName = h.LocationName AND z.StationName = h.StationName AND
z.AllocationDate = h.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour9
FROM satsschema.view08000900) i ON z.LocationName = i.LocationName AND z.StationName = i.StationName AND
z.AllocationDate = i.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour10
FROM satsschema.view09001000) j ON z.LocationName = j.LocationName AND z.StationName = j.StationName AND
z.AllocationDate = j.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour11
FROM satsschema.view10001100) k ON z.LocationName = k.LocationName AND z.StationName = k.StationName AND
z.AllocationDate = k.AllocationDate LEFT OUTER JOIN
(SELECT DISTINCT AllocationDate, LocationName, StationName, Hour12
FROM satsschema.view11001200) l ON z.LocationName = l.LocationName AND z.StationName = l.StationName AND
z.AllocationDate = l.AllocationDate LEFT OUTER JOIN
(SELECT a.EmpName, CONCAT(b.StartTime, ' - ', b.EndTime) AS ShiftTime, CONCAT(a.EmpTime, ' - ', ADDTIME(a.EmpTime, '0 1:0:0.000000'))
AS BreakTime, a.Break, a.EmployeeOnBreak, '' AS SignIn, '' AS SignOut
FROM satsschema.employeeslot a JOIN
satsschema.ufis b m ON b.UFISID = a.UFISEmpGroup) Morning
WHERE (AllocationDate = @AllocationDate) AND (LocationName = @LocationName) AND (StationName <> '') AND (Break = 1)
GROUP BY StationName, LocationName, AllocationDate
最佳答案
您的 ON
子句在括号 ) m ON b.UFISID = a.UFISEmpGroup
之外,试试这个,
SELECT a.EmpName,
CONCAT(b.StartTime, ' - ', b.EndTime) AS ShiftTime,
CONCAT(a.EmpTime, ' - ', ADDTIME(a.EmpTime, '0 1:0:0.000000')) AS BreakTime,
a.Break,
a.EmployeeOnBreak,
'' AS SignIn,
'' AS SignOut
FROM satsschema.employeeslot a JOIN satsschema.ufis b m
ON b.UFISID = a.UFISEmpGroup
关于c# - 如何修复此错误 : "Error in join expression. Can' t parse query text",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12400271/