您的位置:首页 > 数据库

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: