2016-05-13 12 views
0

私は次のクエリを書いていますが、ドル金額が正の注文でグループ化されている0ドルの注文があります。SQLクエリ:0より大きいオーダーの顧客による最初の注文日

オーダーの金額が0.00より大きい顧客には、最初の注文日のみを割り当てる方法を教えてください。

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

Iは、以下を試みたが、GROUP BYの量を置くこと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に対し前に起こる

関連する問題