2016-10-10 103 views
1

我有一個數據庫,具有相同唯一ID的多個日期。我試圖找到每個唯一ID的第一個(最小)和最後(最大)日期。我希望得到的結果是: 唯一ID,第一次約會,最後日期,字段1,字段2,字段3查找日期字段的最小/最大值

Select max(date_Executed) as Last_Date, 
    (select unique_ID, MIN(date_Executed)as First_Date 
from Table_X 
group by unique_ID, Field1, field2,field3 
) 
from Table_X 
where unique_ID = unique_ID 
group by unique_ID, Field1, field2,field3 
order by unique_ID,First_Permit_Date 

該錯誤消息我得到的是:

只有一個表達式可以在指定子查詢未使用EXISTS引入時選擇列表。 消息207,級別16,狀態1,行19 無效的列名稱'First_Permit_Date'。

我是新來的SQL ... 感謝您的幫助 -

回答

4

何嘗不是一種簡單的選擇與組由

Select max(date_Executed) as Last_Date, MIN(date_Executed) as First_Date 
from Table_X 
group by unique_ID, Field1, field2,field3 
order by unique_ID,First_Permit_Date 

您可以使用一個以上的聚合函數INA選擇.. (使用相同的分組條款)

+0

我正在編寫... – Gross

+0

@Gross。更好地解釋你的評論..你需要一些其他的支持..? – scaisEdge

+0

如果你的日期字段可以爲'null',比如'date_Executed'還沒有發生,並且你希望'null'是最小值(如果它存在的話),你需要做一些事情'min( isnull(date_Executed,convert(datetime,0)))as First_Date'。 –

0

難道它不應該是這樣嗎? 我沒有進一步瞭解您的表格,但第二個'select'語句似乎會導致錯誤。

SELECT unique_ID, min(date_Executed) as First_Date, max(date_Executed) as Last_Date, field1, field2, field3 

FROM Table_X 
GROUP BY unique_ID, Field1, field2, field3 
order by unique_ID, First_Permit_Date 
+0

我想我讓它變得如此困難......!謝謝! – Gross