2016-05-13 99 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發生在之前。

相關問題