SQL Server: вычитание между 2 запросами

#sql #sql-server

#sql #sql-сервер

Вопрос:

у меня есть 2 запроса, где в одной таблице указана сумма для таких автомобилей, как

 Amount_Table        Cars 
800                 Car A
900                 Car B
2100                Car C
  

Вторая таблица показывает скидку соответственно для автомобилей A, B и C.

 Discount_table 
40 
10 
80
  

Я хотел бы получить окончательный запрос, в котором отображаются значения суммы-скидки

В таблице сумм выполнен один запрос, а в таблице скидок — другой. следовательно, я хочу сделать (amount-query) - (discount query)

Я сделал

 Select ( (amount-query) - (discount-query))
  

но это привело к ошибке

В списке выбора может быть указано только одно выражение, если подзапрос не введен с помощью EXISTS.

Пожалуйста, помогите!

Комментарии:

1. Можете ли вы показать нам свою фактическую схему таблицы и фактический SQL?

2. можете ли вы опубликовать ПОЛНЫЙ запрос? Спасибо!

Ответ №1:

попробуйте что-то вроде этого:

 Select AmountTable.Amount-isnull(DiscountTable.Discount, 0)
from AmountTable left join 
on AmountTable.Car = DiscountTable.Car
  

Ответ №2:

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

Ответ №3:

Вам нужно присоединиться:

 SELECT *
       ,cars_table.amount - discounts_table.discount
FROM cars_table
INNER JOIN discounts_table
    ON cars.some_key = discounts_table.some_key