真的在尋求下一步查詢的幫助。我不是一名開發人員,我的老闆並沒有憋住我的脖子,也沒有讓我的工作不在線上。我只是一個初學者,一個普通人,在mySQL/PHP深淵裏掙扎,尋找一些支持。我沒有知識或經驗來解決我的問題,因此我已經在這裏發佈。通過選擇查詢創建RAG狀態
到目前爲止,我有:
SELECT typeName, COUNT(bedID) AS count, pRed, pAmber, pGreen, dRed, dAmber, dGreen, sRed, sAmber, sGreen
FROM bed
JOIN hotel on hotelID = bedHotelID
JOIN type ON typeID = bedTypeID'
WHERE bedStatusID = 'available' AND bedHotelID = 666
GROUP BY bedTypeID
只帶回3行和它的偉大工程。它給我目前的可用病牀類型和每個設置的警報級別。三種牀型中的每一種都有三種可能的狀態'..我試圖做的是檢查牀型的當前可用性(計數)是否低於其三個警戒級別之一(紅琥珀色綠色)。理想情況下,我想把這個狀態放在一個虛擬的列中,但是我被困在了這個第一位......
我是以錯誤的方式去解決它嗎?
我應該甚至在mySQL查詢中這樣做,或者我應該使用PHP來做到這一點?
但願我不是失去了一些東西embarressingly簡單,但如果我現在我會道歉,而不是受害論壇衆神的憤怒...
UPDATE: 感謝David KJ我學會了一些CASE今天,如果它有助於任何人在未來這是我最後的查詢,允許不同的牀型給予單獨的抹布狀態
SELECT typeName AS bedType, COUNT(bedID) AS count,
WHEN COUNT(bedID) <= pRed AND bedTypeID = 3 THEN 'red'
WHEN COUNT(bedID) <= pAmber AND bedTypeID = 3 THEN 'amber
WHEN COUNT(bedID) <= dRed AND bedTypeID = 2 THEN 'red'
WHEN COUNT(bedID) <= dAmber AND bedTypeID = 2 THEN 'amber'
WHEN COUNT(bedID) <= sRed AND bedTypeID = 1 THEN 'red'
WHEN COUNT(bedID) <= sAmber AND bedTypeID = 1 THEN 'amber'
ELSE 'green'
FROM bed
JOIN hotel on hotelID = bedHotelID
JOIN type ON typeID = bedTypeID'
WHERE bedStatusID = 'available' AND bedHotelID = 666
GROUP BY bedTypeID
就像一個魅力...
我認爲這裏可以使用CASE語句。你可以從查詢中添加輸出嗎? – 2015-02-10 18:31:23
目前,你有一個相當明顯的錯字。這可能是問題嗎? – Strawberry 2015-02-10 21:59:35
@Strawberry錯別字對我來說是一種生活方式,但並不是那種讓我失望的東西。這是SQL語法和我的知識缺乏,但要求您的評論 – Filious 2015-02-10 22:40:42