为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
温温酱 2022-07-23 18:08:41
我的表每年每位员工都有一条记录。如果今年没有记录员工数据,应该通过什么查询来更改可见性。列名是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())


查看完整回答
反对 回复 2022-07-23
?
侃侃无极

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 的解决方案。


查看完整回答
反对 回复 2022-07-23
  • 2 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号