表每年每位员工有一条记录。如果今年未记录员工数据,应如何查询以更改可见性

时间:2019-01-16 13:21:55

标签: c# sql sql-server

我的表格每年每位员工有一条记录。如果今年未记录员工数据,应该如何查询才能更改可见性。

列名是employee_nameemployee_IdratingCreatedOn,其中CreatedOn基本上是时间戳。

假设form1form2有两种形式,其可见性取决于用户输入。如果用户已提交form1,则他只能看到form2。恰好在一年之后,各个用户可以再次看到form1

我尝试了以下命令,但不起作用

SELECT COUNT(*) FROM
TABLE
WHERE employee_Id = '$CurrentUserId$'
AND CreatedOn > DATEADD(year,-1,GETDATE())

如果query = 0,显示form1,否则显示form2

我了解基本的SQL,但是我的技能尚未达到此水平。

2 个答案:

答案 0 :(得分:1)

SELECT CASE COUNT(*) WHEN 0 THEN 'Form1' ELSE 'Form2' END AS ShowForm
FROM
TABLE
WHERE employee_Id = '$CurrentUserId$'
AND CreatedOn > DATEADD(year,-1,GETDATE())

答案 1 :(得分:0)

在检查记录是否存在时,请使用EXISTS / NOT EXISTSCOUNT()实际上将计数所有行,而EXISTS将在第一行发生短路,从而更快。

IF EXISTS (SELECT 'record this year' FROM [TABLE] T WHERE T.employee_Id = '$CurrentUserId$' AND T.CreatedOn > DATEADD(YEAR,-1,GETDATE()))
BEGIN
    -- Do stuff if record this last year
END
ELSE
BEGIN
    -- Do stuff if no record this last year
END

如果您需要在1条SELECT语句中使用此方法,则可以使用Dheerendra的解决方案。