초보자 sql 질문합니다 select 문안에 select를 여러번 쓸수는 없나요?

(select sum(값1) where 조건1) - (select sum(값2) where 조건2)

위 두 sql 문의 두가지 결과값 더하거나 빼야합니다.

두가지 sql문을 연산하는 방법이 없을까요..

너무 초보라 잘몰라서요 조언부탁드립니다.

    3개의 답변이 있어요!

    • 안녕하세요.

      그런식으로 하시면 됩니다. 가상의 테이블 dual를 써서 결과값만 보여주게 하면 될것 같은데요.. 계산한 값을 아래처럼 dual 안에 넣어서 보여주면 됩니다.

      select (

      (select sum(값1) where 조건1) - (select sum(값2) where 조건2)

      ) from daul

    • 오라클의 경우 단순 데이터를 계산할 때 dual이라는 가상 테이블을 사용해야 합니다.

      예) SELECT SYSDATE FROM DUAL;

      하지만 MSSQL의 경우는 그냥 select를 하면 됩니다.

      예) SELECT getdate() as A;

      따라서 위의 질문의 경우는 해당 쿼리를 select로 연결만 하면 가능합니다.

      select sum(value) from tableA where id < 100; -- 45

      select sum(value) from tableB where id < 1000; -- 5

      select (select sum(value) from tableA where id < 100) - (select sum(value) from tableB where id < 1000);

      -- 40

    • 안녕하세요 아하 인증 현직 개발자 입니다.

      아래와 같이 할 수 있습니다.

      1 select sum(x.sum_num) as sum_num 2 from ( 3 select sum(1) as sum_num 4 union all 5 select sum(1) as sum_num 6 ) x

      4번 라인에서 union all 이용해서 3라인과 5라인의 셀렉트문의 결과를 하나의 가상 테이블로 묶어주고 1번 라인에서 그 값들을 더해주는 방식으로 해결할 수 있습니다. 이상입니다.