오류 코드: 1054:테이블이 있는 경우 '필드 목록'에서 'table_name.column_name' 열을 알 수 없음
데이터베이스에서 데이터를 가져오기 위해 SQL 쿼리를 실행하려고 합니다.제 질문은 다음과 같습니다.
SELECT user,
SUM(CASE WHEN sub_status = 'TB' THEN pause_sec END) AS Training_Break,
SUM(CASE WHEN sub_status = 'SB1' THEN pause_sec END) AS Short_Break_1,
SUM(CASE WHEN sub_status = 'SB2' THEN pause_sec END) AS Short_Break_2,
SUM(CASE WHEN sub_status = 'LB' THEN pause_sec END) AS Long_Break
FROM vicidial_agent_log
WHERE event_time >= '2021-04-01' AND
event_time < '2021-04-17' AND
sub_status IN ('TB', 'SB1', 'SB2', 'LB')
GROUP BY user
HAVING COALESCE(`Training Break`, `Short Break 1`, `Short Break 2`, `Long Break`) IS NOT NULL
이렇게 하면 원하는 결과를 얻을 수 있습니다.결과에 대한 표 출력.사용자 이름을 표시하고 싶지만 다른 테이블에 있습니다.그래서 저는 다음과 같이 여기에 가입했습니다.
SELECT `vicidial_agent_log.user`,
`vicidial_users.full_name`,
SUM(CASE WHEN `vicidial_agent_log.sub_status` = 'TB' THEN `vicidial_agent_log.pause_sec` END) AS Training_Break,
SUM(CASE WHEN `vicidial_agent_log.sub_status` = 'SB1' THEN `vicidial_agent_log.pause_sec` END) AS Short_Break_1,
SUM(CASE WHEN `vicidial_agent_log.sub_status` = 'SB2' THEN `vicidial_agent_log.pause_sec` END) AS Short_Break_2,
SUM(CASE WHEN `vicidial_agent_log.sub_status` = 'LB' THEN `vicidial_agent_log.pause_sec` END) AS Long_Break
FROM `vicidial_agent_log`
INNER JOIN `vicidial_users` ON `vicidial_users.user`=`vicidial_agent_log.user`
WHERE `vicidial_agent_log.event_time` >= '2021-04-01' AND
`vicidial_agent_log.event_time` < '2021-04-17' AND
`vicidial_agent_log.sub_status` IN ('TB', 'SB1', 'SB2', 'LB')
GROUP BY `vicidial_agent_log.user`
HAVING COALESCE(`Training_Break`, `Short_Break_1`, `Short_Break_2`, `Long_Break`) IS NOT NULL
그리고 다음과 같은 오류가 발생합니다.
오류 코드: '필드 목록'의 'vicidial_agent_log.user' 열을 알 수 없습니다.
하지만 테이블은 존재합니다.
또한 코드에서 백 틱을 제거하면 다음 오류가 발생합니다.
오류 코드: 'group 문'의 'vicidial_agent_log.user' 열을 알 수 없습니다.
Following are fields of my two Tables and their columns:
>Columns of vicidial_agent_log: [agent_log_id, user, ...]
>Columns of vicidial_users: [user_id, user, pass, full_name, ...]
My desired output should look like https://i.stack.imgur.com/GVeIz.png only with an addition of one column with a name on it.
This is the first professional project I am building and any sort of help will do. I must be making a beginners mistake that might be small. I am not sure if there is problem with my logic or concept. I have researched into other posts but it doesn't seem to work for me. Any sort of help will go a long way.
당신의 식별자에서 벗어나지 마세요!그리고 가명을 사용하세요!제가 아까 답변에서 말씀드린 것 같습니다.그래서:
SELECT al.user, u.full_name,
SUM(CASE WHEN al.sub_status = 'TB' THEN al.pause_sec END) AS Training_Break,
SUM(CASE WHEN al.sub_status = 'SB1' THEN al.pause_sec END) AS Short_Break_1,
SUM(CASE WHEN al.sub_status = 'SB2' THEN al.pause_sec END) AS Short_Break_2,
SUM(CASE WHEN al.sub_status = 'LB' THEN al.pause_sec END) AS Long_Break
FROM vicidial_agent_log al JOIN
vicidial_users u
ON u.user = al.user
WHERE al.event_time >= '2021-04-01' AND
al.event_time < '2021-04-17' AND
al.sub_status IN ('TB', 'SB1', 'SB2', 'LB')
GROUP BY al.user, u.full_name;
그HAVING
이 버전에는 절이 필요하지 않습니다. 그렇지 않은 경우al.pause_sec
그럴 수도 있겠지요NULL
만약 그것이 가능하다면, 그냥 추가하세요.al.pause_sec IS NOT NULL
에게WHERE
절
당신의 질문의 문제는
`vicidial_agent_log.user`
다음과 같은 열 이름을 참조합니다..
당신의 의도는 다음과 같습니다.
`vicidial_agent_log`.`user`
하지만 다음과 같은 경우에 백스틱을 사용할 필요가 있습니까?
vicidial_agent_log.user
또는:
al.user
테이블 별칭이 정의된 경우.
언급URL : https://stackoverflow.com/questions/67654776/error-code-1054-unknown-column-table-name-column-name-in-field-list-when-t
'programing' 카테고리의 다른 글
Angular2 - TypeError: this.http.get(...).toPromise가 함수가 아닙니다. (0) | 2023.07.08 |
---|---|
SQL Server에서 RANK()를 사용하는 방법 (0) | 2023.07.08 |
오류: 'babel-register' 모듈을 찾을 수 없습니다. (0) | 2023.07.08 |
모듈 빌드 실패:오류: 다음에 대한 출력이 없는 형식 스크립트입니다. (0) | 2023.07.08 |
다른 SQL Server에 연결하기 위한 T-SQL 구문은 무엇입니까? (0) | 2023.07.08 |