2
從表tblQuoteStatusChangeLog
我需要檢查列NewQuoteStatusID
是否有其中的一個值(2,25或202),並選擇最早的TimeStamp。 所以,如果它的價值2
,然後拿起TimeStamp
,如果它不具有價值2
然後檢查是否有25
,拿起相應TimeStamp
,如果它不是那麼檢查202
,並挑選了合適的郵票。爲什麼COALESCE返回NULL而不是我需要的值?
因此從tblQuoteStatusChangeLog
我需要拿起StatusID 202的第一行,因爲它是唯一的條件。
所以我有這個疑問:
SELECT
(SELECT TOP (1) Timestamp
FROM tblQuoteStatusChangeLog
WHERE NewQuoteStatusID = COALESCE (2,25,202) AND ControlNo = tblQuotes.ControlNo
ORDER BY Timestamp DESC) as DateQuoted
FROM tblQuotes
INNER JOIN tblMaxQuoteIDs ON tblQuotes.QuoteID = tblMaxQuoteIDs.MaxQuoteID
where tblQuotes.ControlNo = 50065
但由於某種原因,我得到了NULL
值結果
缺少什麼我在這裏? 謝謝
哦!它只適用於非'NULL'。得到它了。 謝謝。 然後讓我們說,如果我將有值2和25.什麼'IN'會拿起?第一個是2還是第二個是25? – Oleg
@Oleg。 。 。它會挑選所有匹配的。 'ORDER BY'和'TOP'決定了返回的內容。 –