c# - 如何修复此错误 : "Error in join expression. Can' t parse query text"

标签 c# mysql

我有一个复杂的 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/

相关文章:

c# - 如何在不知道任何字段的情况下填充 gridView

php - 将复选框 ID 传递给另一个 php 文件

mysql - mysql中的语法错误?

php - 带有可选参数的 PDO 准备语句

mysql - 用于在 docker MySQL 中创建默认用户的 Bash 脚本

c# - 大量 bool 值的任何拳击问题?有什么选择吗?

c# - 命令窗口和立即窗口之间的实际区别是什么?

c# - iOS 15 更新后 iOS 平台 Xamarin.forms 中的导航栏颜色变化问题

mysql - 在 JOIN 中限制结果的最有效方法?

c# - Entity Framework Core Postgres ILike 函数