SELECT  * FROM [qds157058641_db].[dbo].[kqdaochu]  where username ='5022' 字段:edate 日期  stime 时间
 我想找出,2015-11-1到2015-11-6   并且   2015-11-1到2015-11-6     stime  都=空谢谢

解决方案 »

  1.   

    怎么删除    2015-11-1到2015-11-6   并且   2015-11-1到2015-11-6     stime  都=空  如果其中一天stime不是空,不删除
      

  2.   

    SELECT  * FROM [qds157058641_db].[dbo].[kqdaochu]  where username ='5022' 
    and stade between '2015-11-1' and '2015-11-6' and stime=''delete FROM [qds157058641_db].[dbo].[kqdaochu]  where username ='5022' 
    and stade between '2015-11-1' and '2015-11-6' and stime=''
      

  3.   

    SELECT * FROM [qds157058641_db].[dbo].[kqdaochu]  where username ='5022'  AND stime='' AND edate BETWEEN'2015-11-01'AND '2015-11-06'delete  FROM [qds157058641_db].[dbo].[kqdaochu]  where username ='5022'  AND stime='' AND edate BETWEEN'2015-11-01'AND '2015-11-06'
      

  4.   

    -- 测试数据
    DECLARE @kqdaochu TABLE(
        id int identity,
        username varchar(10),
        edate date,
        stime time
    )INSERT INTO @kqdaochu(username,edate,stime)
    SELECT '5022','2015-11-01',NULL UNION ALL
    SELECT '5022','2015-11-02',NULL UNION ALL
    SELECT '5022','2015-11-03',NULL UNION ALL
    SELECT '5022','2015-11-04',NULL UNION ALL
    SELECT '5022','2015-11-05',NULL-- 参数
    DECLARE @dt1 date
    DECLARE @dt2 date
    SET @dt1 = '2015-11-01'
    SET @dt2 = '2015-11-06';WITH a AS (
        /* 统计时间段内的状态:
         * 如果时间段内没记录,SELECT/UPDATE 本来就没有相关记录;
         * 如果 cnt = 0,说明“stime 都=空”;
         * 如果 cnt <> 0,说明至少有一个stime非空。
         */
        SELECT username,
               COUNT(stime) cnt
          FROM @kqdaochu
         WHERE edate BETWEEN @dt1 AND @dt2
      GROUP BY username
    )
    -- 这是 SELECT,DELETE 是一样的条件
    SELECT k.*
      FROM @kqdaochu k,
           a
     WHERE k.edate BETWEEN @dt1 AND @dt2
       AND a.cnt = 0
             id username   edate      stime
    ----------- ---------- ---------- ------------
              1 5022       2015-11-01 NULL
              2 5022       2015-11-02 NULL
              3 5022       2015-11-03 NULL
              4 5022       2015-11-04 NULL
              5 5022       2015-11-05 NULL
      

  5.   

    如果测试数据中任意一个 stime 设为非空,SELECT 结果就是空记录。
    简单内容就不贴了。