2013-12-12 6 views
2

У меня есть таблица, содержащая положительные и отрицательные числа. Я должен выяснить сумму положительных и отрицательных чисел, используя вспомогательный запросSQL - сумма положительных и отрицательных чисел с использованием подзапроса

+2

Что вы пытаетесь? С какими проблемами вы столкнулись? Этот сайт может помочь вам в решении проблемы, но не для того, чтобы получить бесплатное решение. (Свободно я имею в виду без усилий и понимания) –

ответ

3

На сумму негатива:

SELECT SUM(numberColumn) FROM tableFoo WHERE numberColumn < 0 

На сумму положительной:

SELECT SUM(numberColumn) FROM tableFoo WHERE numberColumn >= 0 

объединить два (с QUERY1 и QUERY2, являющимися двумя предыдущими запросами):

SELECT (QUERY1), (QUERY2) 
10

Ваш вопрос не очень ясен (нет таблицы ни имен столбцов), и не понятно, почему вам нужен подзапрос (никогда не рекомендуется, если его можно избежать). Вы можете получить значение, которые вы хотите путь использования «дела» заявление

Следующего рассчитывает число положительных и отрицательных значений

select sum (case when acolumn >= 0 then 1 else 0 end) as positive, 
     sum (case when acolumn < 0 then 1 else 0 end) as negative 
from table 

тогда следующие сумм число положительных и отрицательные значения

select sum (case when acolumn >= 0 then acolumn else 0 end) as positive, 
     sum (case when acolumn < 0 then acolumn else 0 end) as negative 
from table 
+0

или, скорее, 'THEN acolumn ELSE 0' для OPs - так как он говорит, что хочет' SUM', а не 'COUNT' – OGHaza

+0

@OGHaza: вы правы. –

0

Используя CTE (Common table Expression), мы можем получить выход.

;WITH Psum_CTE 
AS 
( SELECT SUM(num) AS PositiveSum 
    FROM sample 
    WHERE num>=0 
) 
,Nsum_CTE 
AS 
(
    SELECT SUM(num) AS NegativeSum 
    FROM sample 
    WHERE num<0 
) 

SELECT PositiveSum,NegativeSum 
FROM Psum_CTE,Nsum_CTE 
Смежные вопросы