--> 生成测试数据: @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 行受影响) */
select 登录时间, 退出时间, 录入商品总数= (select count(*) from 表A a where a. 录入时间 between b. 登录时间 and b.退出时间) from 表B b
select ID,登录时间,退出时间 ,[录入商品总数]=(select count(*) from 表A where 录入时间 between 表A.登录时间 and 表A.退出时间) from 表B不知道小梁的写法效率会不会高点……
写错。。 select ID,登录时间,退出时间 ,[录入商品总数]=(select count(*) from 表A where 录入时间 between 表B.登录时间 and 表B.退出时间) from 表B
-- 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 行受影响)
*/
登录时间,
退出时间,
录入商品总数=
(select count(*) from 表A a where a. 录入时间 between b. 登录时间 and b.退出时间)
from 表B b
select ID,登录时间,退出时间
,[录入商品总数]=(select count(*) from 表A where 录入时间 between 表A.登录时间 and 表A.退出时间)
from 表B不知道小梁的写法效率会不会高点……
select ID,登录时间,退出时间
,[录入商品总数]=(select count(*) from 表A where 录入时间 between 表B.登录时间 and 表B.退出时间)
from 表B