我想查詢一個表並將日期設置爲2分隔行,第一行將是距離今天最近的日期,最後一行將包含最大日期。嘗試檢索2個日期時發生SQL混淆
我想出了這一點:
SELECT
ID_CAND, DATE_JOUR
FROM
Paie.dbo.PAI_CAND_JOUR_NON_DISPO nd
WHERE
(ID_CAND = 16246)
AND (DATE_JOUR = (SELECT MIN(DATE_JOUR) AS Expr1
FROM Paie.dbo.PAI_CAND_JOUR_NON_DISPO AS ds
WHERE (ds.ID_CAND = nd.ID_CAND)
AND (DATE_JOUR > GETDATE()))
OR
DATE_JOUR = (SELECT MAX(DATE_JOUR) AS Expr1
FROM Paie.dbo.PAI_CAND_JOUR_NON_DISPO AS ds
WHERE (nd.ID_CAND = ds.ID_CAND)
AND (DATE_JOUR > GETDATE())))
,並返回只有一排......但是當我單獨運行內選擇:
SELECT
MIN(DATE_JOUR) AS Expr1
FROM
Paie.dbo.PAI_CAND_JOUR_NON_DISPO AS ds
WHERE
(ID_CAND = 16246) AND (DATE_JOUR > GETDATE())
SELECT
MAX(DATE_JOUR) AS Expr1
FROM
Paie.dbo.PAI_CAND_JOUR_NON_DISPO AS ds
WHERE
(ID_CAND = 16246) AND (DATE_JOUR > GETDATE())
它確實返回2個不同的值.. 。 我究竟做錯了什麼 ?
您發佈甚至不應該工作的第一個查詢。 ID_CAND列在這裏不明確,因爲無法知道它來自哪個表。而在天堂,如果你正在創建彙總數據,那麼給這些列起一個名字就意味着什麼。 Expr1沒用。 –
好吧,讓我解決,我猜 –
你想要什麼結果?如果我們不知道你想要什麼,我們就不知道你在做什麼錯了。 –