2012-02-14 2 views
0

이것은 DB의 오류 개수를 합산하기위한 제 SQL 쿼리입니다. 무엇이 아래의 문제를 만들었는지, 내가 사용할 수있는 데이터를 확인할 때 주어진 실제 데이터와 올바른 데이터를 얻는다. (테이블에 사용할 수없는 데이터를 입력한다.) 입력이 없다면 아무 것도 제공하지 않는다.Mysql - 데이터를 사용하거나 사용하지 않고 결과를 DB에서 사용할 수 있습니다.

SELECT 
    SUM(IF(ieb.errortype_id='1',1,0)) AS Total_Critical, 
    SUM(IF(ieb.errortype_id='2',1,0)) AS Total_Non_critical, 
    u.emp_id, 
    u.emp_name 
FROM 
    issueerror_empmap iem, 
    issueerror_body ieb, 
    USER u, 
    issueerror_type iet 
WHERE 
    ieb.chapter_id = '424262' AND 
    iem.chapter_errorid=ieb.chapter_errorid AND 
    iem.emp_id = u.emp_id AND 
    u.emp_id = '693' AND 
    ieb.errortype_id=iet.errortype_id 
GROUP BY 
    iem.emp_id, 
    u.emp_name 
ORDER BY 
    iem.emp_id 

어느 한 방법을 사용할 경우 데이터를 검색하고 테이블의 입력 데이터를 사용할 수없는 경우 출력이 null를 표시하려면이 쿼리를 작성하는 날을 제안 해주십시오 수 : 모든 출력 화면을 던져. 상기 쿼리에 대한 출력을 생성하는

은 (a 테이블의 가용 데이터 경우)이다

Total_Critical Total_Non_Critical emp_id emp_name 
4     10     xxx  xxx 

상기 쿼리에 대한 출력의 제조는 (만약 테이블에서 사용할 수없는 데이터)

Total_Critical Total_Non_Critical emp_id emp_name 

오류 개수가 0 또는 0 인 emp_id 및 emp_name이 필요합니다.

+0

나중에 가독성을 위해 쿼리의 형식을 지정할 수 있습니까? 이번엔 내가 너 한테 해 줬어. –

답변

0

이 쿼리는 어떻습니까?

select 
sum (Total_Critical) as Total_Critical, 
sum(Total_Non_critical) as Total_Non_critical, 
emp_id, 
emp_name from 
(
(SELECT 
    SUM(IF(ieb.errortype_id='1',1,0)) AS Total_Critical, 
    SUM(IF(ieb.errortype_id='2',1,0)) AS Total_Non_critical, 
    u.emp_id, 
    u.emp_name 
FROM 
    issueerror_empmap iem, 
    issueerror_body ieb, 
    USER u, 
    issueerror_type iet 
WHERE 
    ieb.chapter_id = '424262' AND 
    iem.chapter_errorid=ieb.chapter_errorid AND 
    iem.emp_id = u.emp_id AND 
    u.emp_id = '693' AND 
    ieb.errortype_id=iet.errortype_id 
GROUP BY 
    iem.emp_id, 
    u.emp_name 
ORDER BY 
    iem.emp_id) 
) UNION ALL (
select 0,0,null, null 
) 
) as tbl1 
관련 문제