表中每个员工每年都有一条记录。如果今年未记录员工数据,应该通过什么查询来更改可见性

我的表每年每位员工都有一条记录。如果今年没有记录员工数据,应该通过什么查询来更改可见性。


列名是employee_name, employee_Id, rating,基本上是时间戳CreatedOn。CreatedOn


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


我尝试了以下命令,但无法正常工作


SELECT COUNT(*) FROM

TABLE

WHERE employee_Id = '$CurrentUserId$'

AND CreatedOn > DATEADD(year,-1,GETDATE())

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


我知道基本的 SQL,但我的技能还达不到这个水平。


温温酱
浏览 117回答 2
2回答

元芳怎么了

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

侃侃无极

检查记录是否存在时,使用EXISTS/ NOT EXISTS。COUNT()实际上会计算所有行,同时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 yearENDELSEBEGIN    -- Do stuff if no record this last yearEND如果您在 1 条SELECT语句中需要此功能,您可以使用 Dheerendra 的解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP