2016-10-12 13 views
0

一意のID(一意のIDに異なる日付の複数行のデータがある)の日付の最も早いインスタンスを見つけようとしていて、その結果をフィルタリングしてサブクエリーを使用して2005年と2010年。私は 'キーワード'グループの近くで構文が正しくありません:日付範囲をminとmax日付フィールドから見つける

Select * 
from (select custnum, YEAR(min(Date_field)) as field1, Field2, field3, field4, field5 
     from table1 
     group by custnum, field2, field3, field4, field5) 
    having YEAR(min(Date_field)) between 2005 and 2010 

すべてのアイデアをお持ちですか?あなたのヘルプ -

+0

はあなたの一意ID custnumのですか? –

+0

サブクエリで '2005年と2010年の間にYEAR(min(Date_field)) 'を取得しようとします。 –

+0

'-select'サブオプションを使用しています。' having'節は外側 'select'にあり、' group by'は '-sese'サブです。また、外側の 'select'のsubselect' Date_fieldが存在しない場合は' select' Date_fieldを参照しています。 – ajeh

答えて

0

ため おかげで私が正しくあなたを理解している場合、あなたが使用することができます。

WITH CTE AS 
(
    SELECT custnum, 
      Field2, 
      Field3, 
      Field4, 
      Field5, 
      Field1 = MIN(Date_Field) OVER(PARTITION BY custnum) 
    FROM dbo.table1 
) 
SELECT * 
FROM CTE 
WHERE Field1 BETWEEN '20050101' AND '201'; 
+0

ですが、クエリは実行されますが、データは返されません。 – Gross

+0

@Gross「custnum」の最小日付は2005年から2010年の間です。 'Date_Field'データ型とは何ですか? – Lamak

+0

yup-私が持っているデータには、1982年から現在の日付範囲の同じcustnumを持つ複数の行があります。日付フィールド型はdatetime – Gross

関連する問題