我想查询一个表并将日期设置为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没用。 –
好吧,让我解决,我猜 –
你想要什么结果?如果我们不知道你想要什么,我们就不知道你在做什么错了。 –