SQL语句记录,查询今日某个活动签到是否正常
2017-11-07 15:24
274 查看
做个笔记:
SELECT
IF (DATE(signend) != date_format(now(), '%y-%m-%d'),NULL,signend) AS signend,
stu.NAME,
stu.signstart
FROM(
SELECT
DISTINCT MAX(IF ( DATE(sign_start) != date_format(now(), '%y-%m-%d'),NULL,sign_start)) AS signstart,
t.id,
t.`name`,
MAX(s.sign_end) AS signend
FROM t_user t
LEFT JOIN t_sign_up tu ON t.id = tu.uid
LEFT JOIN t_activity ta ON tu.aid = ta.id
LEFT JOIN t_sign s ON s.suid = tu.id
LEFT JOIN t_activity_time tt ON tt.aid = ta.id
WHERE
DATE_SUB(CURDATE(), INTERVAL 1 DAY) < tt.`start`
AND DATE_SUB(CURDATE(), INTERVAL - 1 DAY) > tt.`end`
AND ta.id = 20
GROUP BY id ) AS stu
WHERE
TO_DAYS(NOW()) - TO_DAYS(stu.signend) = 0
AND TO_DAYS(NOW()) - TO_DAYS(stu.signstart) = 0
OR (
stu.signend IS NULL
AND stu.signstart IS NULL
)
OR (
stu.signend != ''
AND stu.signstart IS NULL
)
OR (
stu.signstart != ''
AND stu.signend IS NULL
)
ORDER BY stu.signstart
SELECT
IF (DATE(signend) != date_format(now(), '%y-%m-%d'),NULL,signend) AS signend,
stu.NAME,
stu.signstart
FROM(
SELECT
DISTINCT MAX(IF ( DATE(sign_start) != date_format(now(), '%y-%m-%d'),NULL,sign_start)) AS signstart,
t.id,
t.`name`,
MAX(s.sign_end) AS signend
FROM t_user t
LEFT JOIN t_sign_up tu ON t.id = tu.uid
LEFT JOIN t_activity ta ON tu.aid = ta.id
LEFT JOIN t_sign s ON s.suid = tu.id
LEFT JOIN t_activity_time tt ON tt.aid = ta.id
WHERE
DATE_SUB(CURDATE(), INTERVAL 1 DAY) < tt.`start`
AND DATE_SUB(CURDATE(), INTERVAL - 1 DAY) > tt.`end`
AND ta.id = 20
GROUP BY id ) AS stu
WHERE
TO_DAYS(NOW()) - TO_DAYS(stu.signend) = 0
AND TO_DAYS(NOW()) - TO_DAYS(stu.signstart) = 0
OR (
stu.signend IS NULL
AND stu.signstart IS NULL
)
OR (
stu.signend != ''
AND stu.signstart IS NULL
)
OR (
stu.signstart != ''
AND stu.signend IS NULL
)
ORDER BY stu.signstart
相关文章推荐
- 查询数据表中某字段值是否有多条记录相同的sql语句
- 转载:如何写个SQL语句查询一个字段里是否有重复记录如果有只读取其中一条记录
- Hibernate SQLQuery查询返回空List,在mysql命令下直接执行sql语句可以正常得到记录
- 查询及删除重复记录的SQL语句
- SqlServer删除所有存储过程和所有表、查询表是否存在指定的记录及UPDATE语句
- sql语句查询出表里符合条件的第二条记录的方法
- 数据库中使用SQL语句查询当天数据记录
- sql语句去除重复记录(多表连接的查询)
- SQL 语句判断记录是否存在(最简洁简单性能最优)
- SQL语句技巧:查询存在一个表而不在另一个表中的数据记录
- 用SQL语句判断数据库中的记录是否存在
- Oracle:sql语句查询没有重复的记录数目
- Oracle 查询并删除重复记录的SQL语句
- SQL去重复语句或查询最后一次记录
- Oracle 查询并删除重复记录的SQL语句
- 在查询结果中添加一列表示记录的行数的sql语句
- SQL用select语句查询重复记录
- 使用SQL语句对重复记录查询、统计重复次数、删除重复数据
- Oracle 查询并删除重复记录的SQL语句
- SQL语句查询数据库中重复记录的个数