В общем если id в 1 таблице это id из 3 то так можно:
SELECT
3TABLE.ID
-- Вычисляем скидку
, CASE
WHEN
TIMES > 2
THEN
'20'
ELSE
'5'
END AS DISCOUNT
FROM
3TABLE
LEFT OUTER JOIN
(
-- Группируем по ИД
-- Суммируем sales
-- Берем более 1500
SELECT
ID
, SUM(SALES) AS SALES
FROM
(
-- Выбираем Samara и Barcelona
-- Исключаем England
-- Группируем (хотя, вот здесь наверное можно не группировать)
SELECT
1TABLE.ID
, SUM(1TABLE.SALES) AS SALES
FROM
1TABLE
INNER JOIN
2TABLE
ON
1TABLE.CITY = 2TABLE.CITY
GROUP BY
1TABLE.ID
, 1TABLE.CITY
, 2TABLE.COUNTRY
, 1TABLE.SALES
HAVING
(1TABLE.CITY IN (N'Samara', N'Barcelona'))
AND (NOT (
2TABLE.COUNTRY = N'England'
))
) AS WRAP_TABLE
GROUP BY
ID
HAVING (SUM(sales) > 1500)
) AS SUM_WRAP_TABLE
ON
SUM_WRAP_TABLE.ID = 3TABLE.ID