2016-06-17 232 views
1

试图改变下面的代码允许我使用分钟在where子句在where子句

SELECT od.personID 
,'Uno' AS [CustomerType] 
FROM dbo.orderDetails od 
WHERE od.orderDate BETWEEN CONVERT(date, '2016-02-01') AND @StartDate 
AND MIN(odd.orderDate) BETWEEN CONVERT(date, '2016-02-01') AND @StartDate) 
GROUP BY personID 
+0

欢呼使用MIN,就是这么愚蠢的我。它是一个漫长的一天忘记基础大声笑 – Faiz

+0

可能重复的[集合函数在SQL WHERE子句](http://stackoverflow.com/questions/6319183/aggregate-function-in-sql-where-clause) – Ako

回答

6

移动MINHAVING部分

SELECT od.personID 
,'Uno' AS [CustomerType] 
FROM dbo.orderDetails od 
WHERE od.orderDate BETWEEN CONVERT(date, '2016-02-01') AND @StartDate  
GROUP BY personID 
HAVING MIN(odd.orderDate) BETWEEN CONVERT(date, '2016-02-01') AND @StartDate 
+0

只是一个快速在具有条款中的陈述意味着该人的第一个订单日期在该日期之间是正确的?只是澄清 – Faiz

+0

是的,这是正确的。 –

+0

欢呼队友谢谢:) – Faiz