2010-03-16 4 views
0

это утверждение будет генерировать 4 столбца таблицы:как я получаю сумму 4 столбца

SELECT shipped.badguy AS badguy, shipped.sdate AS LineDate, 
     'Delivery' AS Legend, -price*quantity AS amount 
    FROM product JOIN shipped ON (product.id = shipped.product) 
UNION 
    SELECT receipt.badguy, receipt.rdate,notes, amount 
    FROM receipt 

как я получаю общую сумму 4-го столбца, что выше генерирует?

+0

В какой базе данных? –

+0

Ваш запрос оказался неполным. –

ответ

1

Мне нравится использовать подзапросы для всего.

SELECT SUM(results.amount) 
FROM 
(
SELECT -price*quantity AS amount 
    FROM product JOIN shipped ON (product.id = shipped.product) 
UNION 
    SELECT amount 
    FROM 
... 
) results 
+0

sql: errorEvery производная таблица должна иметь свой собственный псевдоним номер: 1248 –

+0

О, да, вам понадобится псевдоним для подзапроса. Я добавлю. –

+0

В Oracle выражения подзапросов не требуют псевдонимов. 'select count (dummy) from (select * from dual);' отлично. –

1

Попробуйте

sum(price*quantity) 

или объединить оба запроса, как

SELECT badguy,rdate,notes,SUM(AMOUNT) FROM(
     SELECT shipped.badguy AS badguy, shipped.sdate AS LineDate, 
     'Delivery' AS Legend, -price*quantity AS amount 
    FROM product JOIN shipped ON (product.id = shipped.product) 
UNION 
    SELECT receipt.badguy, receipt.rdate,notes, amount 
    FROM) A 
1

Оберните свой запрос в другой запрос, где внешний запрос просто получает нужную сумму. Это делает ваш запрос подзапросом.

SELECT SUM(amount) FROM (
    SELECT shipped.badguy AS badguy, shipped.sdate AS LineDate, 
      'Delivery' AS Legend, -price*quantity AS amount 
     FROM product JOIN shipped ON (product.id = shipped.product) 
    UNION 
    SELECT receipt.badguy, receipt.rdate,notes, amount 
    FROM <...> 
)