簡體   English   中英

子查詢中的未知列-MySQL

[英]Unknown column in subquery - mysql

我非常接近完成這個困難的查詢。 它很長,所以希望不要太壓倒性的。 但是在我的情況下,在select塊中的陳述是從where語句中引用一個並集。 它給我“ MySQL數據庫錯誤:'where子句'中的未知列'U.EmpID'”。 任何幫助將非常感激。 這是查詢:

SELECT U.EmpID,
   CASE
      WHEN     ((SELECT COUNT(*)
                   FROM (SELECT *
                           FROM timeclock_copy tp
                          WHERE     PunchEvent = 'breakin'
                                AND DATE(tp.PunchDateTime) =
                                      '2013-11-12'
                                AND tp.EmpID = U.EmpID) AS s) > 1)
           AND ((SELECT COUNT(*)
                   FROM (SELECT *
                           FROM timeclock_copy tp
                          WHERE     PunchEvent = 'breakout'
                                AND DATE(tp.PunchDateTime) =
                                      '2013-11-12'
                                AND tp.EmpID = U.EmpID) AS s) > 1)
      THEN
         "MULTIPLE BREAKS"
      ELSE
         "ONE BREAK"
   END
      AS Lunch
FROM ((SELECT `enter`.EmpID,
                `enter`.PunchDateTime AS `time`,
                DATE_FORMAT(`enter`.PunchDateTime, '%m-%d-%Y')
                   AS 'Punch Date',
                TIMESTAMPDIFF(SECOND,
                              `enter`.PunchDateTime,
                              '2003-05-01 00:00:00')
                   AS `delta`
           FROM timeclock_copy AS `enter`
          WHERE `enter`.`In-Out` = 1)
        UNION
        (SELECT `leave`.EmpID,
                `leave`.PunchDateTime AS `time`,
                DATE_FORMAT(`leave`.PunchDateTime, '%m-%d-%Y')
                   AS 'Punch Date',
                -TIMESTAMPDIFF(SECOND,
                               `leave`.PunchDateTime,
                               '2003-05-01 00:00:00')
                   AS `delta`
           FROM timeclock_copy AS `leave`
          WHERE `leave`.`In-Out` = 0)) AS U
       LEFT JOIN testclb.prempl pe ON u.EmpID = pe.prempl
 WHERE DATE(U.`time`) >= '2013-11-12' AND DATE(U.`time`) < '2013-11-13'
GROUP BY date(U.`time`), EmpID
ORDER BY U.EmpID, U.`time` ASC

FROM子句中的子查詢不能與外部語句相關聯。 我認為這就是為什么您在“ where子句”中收到“ U.EmpID”未知列的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM