select 
登录时间, 
退出时间, 
录入商品总数=
(select * from 表A a where a. 录入时间 between b. 登录时间 and b.退出时间)
from 表B b

解决方案 »

  1.   

    ---------------------------------
    --  Author: liangCK 小梁
    --  Date  : 2008-11-18 16:19:10
    ---------------------------------
     
    --> 生成测试数据: @tb1
    DECLARE @tb1 TABLE (ID INT,录入时间 DATETIME,录入商品号码 VARCHAR(10))
    INSERT INTO @tb1
    SELECT 1,'2008-11-16 10:12:34','0000000012' UNION ALL
    SELECT 1,'2008-11-16 10:15:56','0123876594'
     
    --> 生成测试数据: @tb2
    DECLARE @tb2 TABLE (ID INT,登录时间 DATETIME,退出时间 DATETIME)
    INSERT INTO @tb2
    SELECT 1,'2008-11-16 10:10:12','2008-11-16 10:20:45' UNION ALL
    SELECT 1,'2008-11-17 19:09:35','2008-11-17 20:00:00'--SQL查询如下:SELECT 
        a.ID,
        a.登录时间,
        a.退出时间,
        COUNT(录入商品号码) AS 录入商品总数
    FROM @tb2 AS a
        LEFT JOIN @tb1 AS b
           ON a.ID=b.ID
               AND b.录入时间 BETWEEN a.登录时间
                        AND a.退出时间
    GROUP BY 
        a.ID,
        a.登录时间,
        a.退出时间/*
    ID          登录时间                    退出时间                    录入商品总数
    ----------- ----------------------- ----------------------- -----------
    1           2008-11-16 10:10:12.000 2008-11-16 10:20:45.000 2
    1           2008-11-17 19:09:35.000 2008-11-17 20:00:00.000 0(2 行受影响)
    */
      

  2.   

    select 
        登录时间, 
        退出时间, 
        录入商品总数=
            (select count(*) from 表A a where a. 录入时间 between b. 登录时间 and b.退出时间)
    from 表B b
      

  3.   


    select ID,登录时间,退出时间
           ,[录入商品总数]=(select count(*) from 表A where 录入时间 between 表A.登录时间 and 表A.退出时间)
    from 表B不知道小梁的写法效率会不会高点……
      

  4.   

    写错。。
    select ID,登录时间,退出时间
           ,[录入商品总数]=(select count(*) from 表A where 录入时间 between 表B.登录时间 and 表B.退出时间)
    from 表B