我正在为此绞尽脑汁,我认为它并没有我想象的那么具有挑战性。实际上,我想要做的是:
计算月平均销售额,同时排除适用于所有地区的假日类型 1(例如,我可以将其更改为特定地区的类型 2)。
SELECT Year(Date) AS Year, Month(Date) AS Month, Avg(tblSales.Sales) AS AvgSales
FROM tblSales
LEFT JOIN tblHolidays
ON tblSales.[Date] >= tblHolidays.[Date From] AND tblSales.[Date] <= tblHolidays.[Date To]
WHERE tblHolidays.[Date From] Is Null AND tblHolidays.[Type]<> 1 AND tblHolidays.[Region]<>"All"
GROUP BY Year(Date), Month(Date);
现在我不确定我是否理解这是否有效,但它确实会产生结果。我没有看到的是它告诉 tblHolidays 与 tblSales.[Date] 相比时不要使用类型 2 和类型 3 假期或适用于特定地区的假期。
有任何想法吗?