2016-03-05 61 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