我的表每年每位员工都有一条记录。如果今年没有记录员工数据,应该通过什么查询来更改可见性。列名是employee_name, employee_Id, rating,基本上是时间戳CreatedOn。CreatedOn假设有两种形式,form1并且form2其可见性取决于用户输入。如果用户已经提交form1,他只能看到form2。一年后,各个用户可以form1再次看到。我尝试了以下命令,但无法正常工作SELECT COUNT(*) FROMTABLEWHERE employee_Id = '$CurrentUserId$'AND CreatedOn > DATEADD(year,-1,GETDATE())如果query = 0,显示form1,否则显示form2我知道基本的 SQL,但我的技能还达不到这个水平。
2 回答

元芳怎么了
TA贡献1798条经验 获得超7个赞
SELECT CASE COUNT(*) WHEN 0 THEN 'Form1' ELSE 'Form2' END AS ShowForm
FROM
TABLE
WHERE employee_Id = '$CurrentUserId$'
AND CreatedOn > DATEADD(year,-1,GETDATE())

侃侃无极
TA贡献2051条经验 获得超10个赞
检查记录是否存在时,使用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 year
END
ELSE
BEGIN
-- Do stuff if no record this last year
END
如果您在 1 条SELECT语句中需要此功能,您可以使用 Dheerendra 的解决方案。
- 2 回答
- 0 关注
- 116 浏览
添加回答
举报
0/150
提交
取消