#sql-server
Вопрос:
У меня есть две таблицы Agency_DailyPrices и Agency_DailyDiscounts.
Вот мой вопрос:
DECLARE @checkIn DATE = CAST(GETDATE() AS DATE);
DECLARE @checkOut DATE = DATEADD(DAY, 6, @checkIn);
DECLARE @currency_id INT = 3;
SELECT AP.date_, AP.property_id, price, discountPercent,
CASE WHEN discountPercent > 0 THEN (price * discountPercent/100) ELSE 0 END AS discountAmount
FROM Agency_DailyPrices AP
LEFT JOIN Agency_DailyDiscounts AD ON AD.date_= AP.date_ AND AD.property_id = AP.property_id
WHERE (AP.date_ BETWEEN @checkIn AND @checkOut) AND
currency_id = @currency_id
ORDER BY AP.property_id;
И вот результат.
Я хочу отфильтровать записи с помощью property_id = 62, так как цены на 2021-06-01 нет. Другими словами. Как я могу получить свойства, которые имеют цену для каждой даты между указанными датами?
Заранее спасибо
Комментарии:
1. Ссылки на изображения данных не помогают нам помочь вам. Опубликуйте примеры данных в виде инструкций DDL и DML; в худшем случае хорошо отформатированные табличные
text
данные . Возможно, однако, то, что вам здесь нужно, — это анEXISTS
?
Ответ №1:
В качестве временного решения я подсчитал количество дней между указанными датами (в данном случае 7). И я возвращаю записи, если общее количество строк на свойство было равно 7.