2017-04-19 86 views

回答

2

嘗試調整以下查詢。 IN子句中的SELECT語句選擇外部查詢返回的日期。

SELECT * 
FROM myTable 
WHERE DateColumn IN 
(
    SELECT MAX(DateColumn) 
    FROM myTable 
    GROUP BY YEAR(Datecolumn), MONTH(DateColumn) 
) 
+0

美麗,謝謝! –

0

您需要從表中選擇其中記錄的YourDateColumn場等於一個月YourDateColumn的最後日期屬於:

SELECT CAST(DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0, YourDateColumn)+1,0)) AS DATE) 
0

嘗試使用下面的查詢:

DECLARE @Dates Table (ID INT, dt DATE) 
    INSERT INTO @Dates VALUES 
    (1,'2017-02-01'), 
    (2,'2017-02-03'), 
    (3,'2017-02-04'), 
    (4,'2017-03-03'), 
    (5,'2017-04-03'), 
    (6,'2017-04-04') 

    SELECT MAX(dt) AS LastDay FROM @Dates GROUP BY DATEPART(MONTH,dt) 

OUTPUT

LastDay 
2017-02-04 
2017-03-03 
2017-04-04 

OR

SELECT DATEPART(MONTH,dt) AS [MONTH],MAX(DATEPART(DAY,dt)) AS LastDay FROM @Dates GROUP BY DATEPART(MONTH,dt) 

MONTH LastDay 
    2 4 
    3 3 
    4 4 
+0

如果該行只包含日期值,則可以使用。對不起,不清楚,但在我的情況下,每行不僅有一個日期,而且還有額外的列。因此,只要我在查詢和分組中包含這些列中的一列,我就會在每個月的每一天結束一行。 –

相關問題