首页 新闻 会员 周边 捐助

一条sql语句,不会写,大神帮帮忙吧

0
[已解决问题] 解决于 2015-01-30 11:29

表结构:日期,学生姓名,是否签到。
签到的学生加一条记录。

现在想查询的结果是:把昨天是否签到加到今天的查询结果集里,用1 或0,表示。
怎样用一条select语句实现,要考虑数据量很大??

问题补充:

大概结果样式是这样

字段:    时间   学生   是否签到    昨日签到
            1.30  小李       是                   1
            1.30  小王       是                   0

爱钻牛角尖的程序猿的主页 爱钻牛角尖的程序猿 | 初学一级 | 园豆:4
提问于:2015-01-29 14:29
< >
分享
最佳答案
0

从流程上用了一个无关Sql语句的方式解决了,谢谢各位

爱钻牛角尖的程序猿 | 初学一级 |园豆:4 | 2015-01-30 11:28
其他回答(3)
0

left join 自身

Y2zz | 园豆:393 (菜鸟二级) | 2015-01-29 15:07

请大神说详细说说吗?真得快愁死我了

0

行转列,case 日期 when 今天 then 0,case 日期 when 昨天 then 1 

气质优雅的猪 | 园豆:283 (菜鸟二级) | 2015-01-29 16:44
0

通过一个子查询然后join连接即可

SELECT r.日期,r.学生姓名,r.是否签到, tmp.昨日签到 FROM Record r LEFT JOIN
(
SELECT 学生姓名, CASE WHEN 是否签到='是' THEN 1 ELSE 0 END AS '昨日签到'
WHERE 日期=CONVERT(VARCHAR(10),DATEADD(dd,-1,GETDATE()),120)
)tmp
ON r.学生姓名=tmp.学生姓名

JeffWong | 园豆:2328 (老鸟四级) | 2015-01-29 17:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册