Как я могу получить свойства, которые имеют цену для каждой даты между указанными датами?

#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.