2016-05-13 65 views
0

我正在编写以下查询,但我的订单中包含0美元的订单与具有正数美元数量的订单进行分组。SQL查询:订单大于0的客户的第一个订单日期

如何仅向订单金额大于0.00的客户指定第一个订单日期?

SELECT  HHID, MIN(ORDDATE) AS FirstOrdDate 
FROM   dbo.Orders 
GROUP BY HHID 

我尝试以下,但将在组量重复的HHID

SELECT  HHID, MIN(ORDDATE) AS FirstOrdDate 
FROM   dbo.Orders 
GROUP BY HHID, DOL 
HAVING (DOL > 0.00) 
+1

一些示例数据和预期结果将有所帮助。 –

+0

为了忽略记录(这里所有的订单都是零金额),你通常会使用'WHERE'子句。它看起来很奇怪,你用'HAVING'来代替。因此,你给所有这些零值记录的DBMS不必要的工作。 –

回答

3

尝试WHERE条款改为:

SELECT HHID, MIN(ORDDATE) AS FirstOrdDate 
FROM dbo.Orders 
WHERE DOL > 0.00 
GROUP BY HHID 

HAVING聚合后会发生,而WHERE发生在之前。

相关问题