首页 > 解决方案 > 如何检索在给定日期之间的每个日期都有价格的属性?

问题描述

我有两张表Agency_DailyPricesAgency_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 没有价格。换句话说。如何检索在给定日期之间的每个日期都有价格的属性?

提前致谢

标签: sql-server

解决方案


作为临时解决方案,我计算了给定日期之间的天数(在本例中为 7)。如果每个属性的总行数等于 7,我将返回记录。


推荐阅读