禁用TaxYear年末18-19

时间:2019-01-10 19:19:07

标签: sql-server tsql

当前,我的屏幕在选择纳税年度代码时显示如下所示。

Having tax year 2018-2019

在选择纳税年度时,我希望禁用下拉框中的2018-2019纳税年度,应该不存在2018-2019。

下面是在屏幕上加载纳税年份的存储过程。

ALTER PROCEDURE [dbo].[TYEEYUSubmission_GetTaxYears] (
  @PayrollNumber VARCHAR(10)
) AS BEGIN
  SELECT DISTINCT CONVERT(VARCHAR(4), LEFT(PayrunPeriod, 4)) AS TaxYear
    , CONVERT(VARCHAR(4), LEFT(PayrunPeriod, 4)) + ' / ' + CONVERT(VARCHAR(4), LEFT(PayrunPeriod, 4) - 1) AS TaxYearDesc
  FROM RSTPayrollPeriod
  WHERE PayrollNumber = @PayrollNumber
    -- AND PeriodRunType = 'E'  
  ORDER BY TaxYear DESC
END

请问您如何建议修改存储过程,以免在纳税箱中出现纳税年度“ 2018-2019”?

我是SQL的新手,这就是为什么很难理解这一点的原因。谢谢

2 个答案:

答案 0 :(得分:0)

我猜您正在使用SQL Server,所以这是我的解决方案。我假设PayrunPeriod是作为字符串存储的日期

ALTER PROCEDURE [dbo].[TYEEYUSubmission_GetTaxYears] (
  @PayrollNumber VARCHAR(10)
) AS BEGIN
  DECLARE @year int;
  SET @year = DATEPART( yyyy, GETDATE());

  SELECT DISTINCT CONVERT(VARCHAR(4), LEFT(PayrunPeriod, 4)) AS TaxYear
    , CONVERT(VARCHAR(4), LEFT(PayrunPeriod, 4)) + ' / ' + CONVERT(VARCHAR(4), LEFT(PayrunPeriod, 4) - 1) AS TaxYearDesc
  FROM RSTPayrollPeriod
  WHERE PayrollNumber = @PayrollNumber
    AND CONVERT(INT, LEFT(PayrunPeriod,4)) < @year
  ORDER BY TaxYear DESC
END

答案 1 :(得分:0)

应用了您的答案,但给出了以下内容 [结果] https://i.stack.imgur.com/c0FVg.png