无论我们是否在特定地点提供服务,我都想退货。层次结构是邮政编码 > 州 > CountryWide
因此,如果您输入 TX 邮政编码,它将首先查看是否有邮政编码条目。如果没有,它将检查 TX 条目。如果仍然没有命中,它将检查全国政策。
为了实现这一点,我有一个 Calc 字段来指示具体程度。邮政编码为 3 级,州 = 2,CW = 1。所以一个简单的 MAX 会让我知道我正在处理什么级别的数据。我对此查询的一个示例是:
SELECT Service_Availability.Service_Product, MAX(Service_Availability.Specificity) AS Spec
FROM Service_Availability
WHERE Service_Availability.State = "TX" OR Service_Availability.State = "CW"
GROUP BY Service_Product;
现在这是我的问题所在。
我想知道是否可以提供最高级别的服务。但是,我没有正确的方法...
SELECT Service_Availability.Service_Product, MAX(Service_Availability.Specificity) AS Spec
FROM Service_Availability
WHERE (Service_Availability.State = "TX" OR Service_Availability.State = "CW")
AND Service_Availability.Available = TRUE
GROUP BY Service_Product;
这将返回服务可用的最高级别的特异性,而不是如果该服务在最高级别的特异性下可用。
换句话说,假设邮编是 68123(奥马哈,内布拉斯加州)。
我的数据库显示我们确实在内布拉斯加州提供服务,但无论出于何种原因,我们特别不能在奥马哈(68123)提供服务。我希望数据库看到我有 zip 级别的数据,并使用它来确定可用性(FALSE)。
我理解为什么我的代码是错误的方法,但我不确定从哪个方向来。帮助表示赞赏!