2014-12-06 3 views
-1

두 값을 가져 오는 쿼리를 만들었습니다. 올바른 값을 출력하지만 이제는이 값을 합하여 "Total Cost"열에 값 하나를 가져 오려고합니다. "총비용"이 테이블의 열이 아닌 경우 가능합니까?MySQL 쿼리 후에 값을 추가 하시겠습니까?

SELECT ROUND(SUM(drugcost_cost),0) FROM drugcost UNION SELECT ROUND(SUM(operation_cost),0) FROM operation 

output with code

답변

0

하위 쿼리와 함께이 작업을 수행 : 여기

내가 사용하는 쿼리입니다 그런데

SELECT d.dcost, o.ocost, (d.dcost + o.ocost) as totalcost 
FROM (SELECT ROUND(SUM(drugcost_cost),0) as dcost FROM drugcost) d CROSS JOIN 
    (SELECT ROUND(SUM(operation_cost),0) as ocost FROM operation) o; 

, 당신의 쿼리의 훌륭한 예입니다 왜 당신은 항상해야 union all을 사용하십시오.을 알고 싶다면 union을 원하는 이유를 알고 있어야합니다. 두 개의 하위 쿼리의 값이 같으면 union은 중복을 제거하므로 하나의 행만 가져옵니다.

+0

# 1054 - '필드 목록'에 알 수없는 'o.cost'열 – user3411002

+0

@ user3411002. . . 오타가 수정되었습니다. –

+0

정확히 내가 원했던 것! 고마워, 왜 이제 UNION ALL을 대신 사용해야하는지 알지만, 더 합리적이긴하지만 크로스 조인이 더 적합하다. – user3411002

관련 문제