我想回到我們是否在特定位置提供服務。該層次結構是郵編>國家>全國上MAX值返回的數據(不影響MAX的結果)
所以,如果你輸入一個TX郵政編碼,它會先看看是否有一個zip條目。如果不是,它將檢查TX條目。如果仍然沒有命中,它將檢查全國範圍的政策。
要做到這一點,我有一個計算器字段,表示specificty的水平。郵政編碼爲3級,States = 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;
這將返回特異性的最高水平,服務是可用的,沒有如果服務可在特異性的最高水平。
要說的另一種方式,假設ZIP是68123(內布拉斯加州奧馬哈)。
我的數據庫顯示,我們在內布拉斯加州提供服務,但無論出於何種原因,我們特別不能在奧馬哈(68123)提供服務。我想讓db看到我有zip級別的數據,並用它來確定可用性(FALSE)。
我明白爲什麼我的代碼是錯誤的做法,但我不知道從來到它的方向。幫助表示讚賞!
這是不完全清楚你正在嘗試做的。請張貼你的表格結構的一些樣本數據,然後得到想要的結果。 – Taryn
您可以使用另一種模式來代替MAX/GROUP BY ...它將SELECT TOP 1與ORDER BY結合在一起。很多時候它使你的邏輯更簡單。我會建議探討這一點。 –
@Dave:OP似乎沒有在尋找單個記錄結果,所以TOP 1在這裏不起作用。 – PinnyM