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 没有价格。换句话说。如何检索在给定日期之间的每个日期都有价格的属性?
提前致谢
解决方案
作为临时解决方案,我计算了给定日期之间的天数(在本例中为 7)。如果每个属性的总行数等于 7,我将返回记录。
推荐阅读
- python - 来自python问题的exe
- java - java中如何使用Collections.sort()?
- javascript - 不同高度的定位元件
- selenium - 用于记录在浏览器中为 UI 自动化测试完成的任务的选项
- cmake - 如何在 CMake 中使用版本号和共享库后缀(.so 或 .dylib)
- json - 从 Kotlin 中的子类获取 SerializedName 参数
- html - 表格中的图像未按预期放置?
- ios - iOS 11.x 的 Cordova 中的 CSS 图像掩码损坏?
- javascript - 从 firebase firestore 参考中获取异步值
- azure - 如何从 Azure 移动应用后端捕获异常?