2016-03-05 62 views
-1

我想獲取記錄,如果稍後有效的日期。如果我給1,它應該在2016-01-04和2016-03-04之間獲得記錄生效日期。如何在SQL Server中按月選擇記錄

樣本數據查詢:

select employeecode, basic, effectivedt 
from PaymentEarningDetails 

採樣數據輸出:

Employeecode Basic Effectivedt 
------------------------------------ 
KT007   4545 2016-01-04 
KT007   555  2016-03-04 

所需的輸出 - 如果輸入的月份是1和2016年

KT007   4545 2016-01-04 

查詢:

SELECT TOP 1 
    MONTH(effectivedt), EffectiveDt 
FROM 
    PaymentEarningDetails 
WHERE 
    Employeecode = 'KT007' 
    AND MONTH(effectivedt) <= '2' 
    AND YEAR(effectivedt) >= '2016' 
ORDER BY 
    EffectiveDt DESC 
+0

「頂部1」不是輸入,它是查詢獲得頂部項目 – Ian

+0

它是正確還是錯誤。 –

+1

你的問題描述不清楚,不符合你寫的查詢,嘗試重寫它並提供一個更大的例子。 \t請閱讀[**如何提問**](http://stackoverflow.com/help/how-to-ask) \t \t這裏是[** START **]( http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)瞭解如何提高您的問題質量並獲得更好的答案。 –

回答

0

我知道你需要2016年01月的一切,請試試這個。

SELECT 
    MONTH(effectivedt), EffectiveDt 
FROM 
    PaymentEarningDetails 
WHERE 
    Employeecode = 'KT007' 
    AND MONTH(effectivedt) = 1 
    AND YEAR(effectivedt) = 2016 
ORDER BY 
    EffectiveDt DESC