2016-03-21 5 views
-1

Я хочу суммировать/вычитать «salevalue» из двух таблиц в моей процедуре. В продаже 1 есть квитанции, 2-й с возвратом. Но я теряюсь в идеях.TSQL - получить сумму или вычесть из двух таблиц

SELECT * 
    FROM @possale1 

    SELECT * 
    FROM @possale2 

    SELECT sum(salevalue) AS S1 
    FROM @possale1 

    SELECT sum(salevalue)*-1 AS S2 
    FROM @possale2 

    select sum(sum(a.salevalue)-sum(b.salevalue)) 
    from @possale1 a 
    inner join @possale2 b on a.receiptdate=b.receiptdate 
+1

«Я теряюсь в мыслях» на самом деле не вопрос, на который можно ответить. Попробуйте пояснить свои аргументы. Возможно, написав свои мысли, вы можете сами прийти к правильному ответу. – Jolta

+0

Плохо я не уточнил. У меня есть хранимая процедура, которая вставляет квитанции и возвращает Oracle через OpenQuery в две отдельные таблицы. Теперь я хочу получить результат от таблиц (квитанции - возврат = баланс). Арво ответил на мой вопрос, и это работает как шарм. – headder

ответ

1

Без агрегации следующий должен сделать:

select ((SELECT sum(salevalue) FROM @possale1) - (SELECT sum(salevalue) FROM @possale2)) as balance 
+0

Огромное спасибо, что дало мне то, что мне хотелось. – headder

0

Вы пытаетесь это сделать?

SELECT SUM(ISNULL(a.salevalue,0) - ISNULL(b.salevalue,0)) 
FROM @possale1 a FULL OUTER JOIN @possale2 b on a.receiptdate=b.receiptdate 
+0

Это работает только в том случае, если обе таблицы имеют ровно 1 строку для каждой даты. – jumxozizi

Смежные вопросы