简体   繁体   中英

In SQL can I Perform Logic on Multiple Columns, which are SELECT Statements?

I am trying to accomplish the following, and I am not sure if it is possible. I have a SELECT Statement that contains an inner SELECT for two of the table columns like so:

SELECT 
col1,
col2,

   (SELECT SUM(col1)
    FROM table2)
    AS FirstResultToAdd,

   (SELECT SUM(col2)
    FROM table3)
    AS SecondResultToAdd,

FROM Table1

So my question is: Is it possible to perform a calculation, such as doing a SUM of "FirstResultToAdd" and "SecondResultToAdd, and returning that as a single column result on "Table1"? Also to keep in mind, I have excluded any joins of the tables to keep the example simple.

I believe you want to perform some logic on the result of Sub-query

To add the two sub-query result

SELECT col1, 
       col2,

      (SELECT col1 
       FROM table2)   
       AS FirstResultToAdd, 

      (SELECT col2 
       FROM table3)   
       AS SecondResultToAdd, 

      (SELECT col1 
       FROM table2) 
       + 
      (SELECT col2 
       FROM table3) 
       AS total 
       FROM table1 

To make the query more readable you can make the original query as Sub-Select and perform the logic in Outer query

just nest one more time...

select col1, col2, sum( FirstResultToAdd )
from (
SELECT 
col1,
col2,

   (SELECT col1
    FROM table2)
    AS FirstResultToAdd,

   (SELECT col2
    FROM table3)
    AS SecondResultToAdd,

FROM Table1
)

Edit: Fixed Group By

Try this:

 Select     A.Col1,
            A.Col2,
           (B.Col3 + C.Col4)

From(
        (Select Col1,
                Col2
         From   [Table1]) A

        Inner join (Select  Sum(Col3) AS Col3
        From    [Table2]) B on 1 = 1

        Inner join (Select  Sum(Col4) AS Col4
        From    [Table3]) C on 1 = 1
     )
Group By  A.Col1,
          A.Col2,
          B.Col3,
          C.Col4

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM