2013-05-18 3 views
0

У меня есть 2 стола: TBL_EQUIPMENTS и TBL_PROPOSAL.SQL SUM всего 2 таблицы

TBL_PROPOSAL имеет 3 важных столбцов:

  • id_proposal
  • Дата
  • скидка

TBL_EQUIPMENTS имеет:

  • id_equipment

  • id_proposal

  • unit_price
  • количество

Теперь я хочу знать, сколько (в евро) мои предложения в этом году, скажем:

Для каждого TBL_PROPOSAL.date > "2013-01-01" I хотели бы использовать формулу:

result = (TBL_EQUIPMENTS.unit_price * TBL_EQUIPMENTS.quantity) * (100 - TBL_PROPOSAL.discount) 

Я могу сделать это с помощью одного оператора SQL?

+0

Ваш вопрос непонятен ... конкретный .. какой colum вы хотите выбрать. –

ответ

1

Да, вы можете:

select e.unit_price * e.quantity) * (100 - p.discount) 
from tbl_Proposal p join 
    tbl_Equipments e 
    on p.id_Proposal = e.id_proposal 
where date >= '2013-01-01' 

Основной синтаксис для объединения. p и e называются псевдонимами таблиц. Они упрощают чтение запроса (имена полных таблиц довольно громоздкие).

Операции с датами различаются между базами данных. Последнее утверждение должно работать в большинстве баз данных. Тем не менее, вы можете попробовать также одно из следующего:

where year(date) = 2013 
where extract(year from date) = 2013 
+0

большое спасибо. Вы читаете мой разум :)) Следующий совет, если очень полезен, потому что я хочу, чтобы пользователь выбирал «В этом году» «В этом месяце», и вы получите подсказку в нужный момент. Еще раз спасибо. С вашей помощью у меня может быть список значений, и теперь я прочитал их все и сделаю СУММУ. Есть ли способ получить сумму всех строк? Я попытался изменить код на SELECT SUM (e.unit_price * e.quantity) * (100 - p.discount) Этот SUM не дает мне правильного значения. Не могли бы вы помочь мне еще раз? спасибо –

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