首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

跨天统计查询有关问题

2013-06-25 
跨天统计查询问题表tbuseridtotalintime152013-05-13 01:23这个数据计算到5月12日 1782013-05-13 09:23这

跨天统计查询问题
表  tb
userid  total   intime              
 1        5      2013-05-13 01:23   这个数据计算到5月12日
 1        78     2013-05-13 09:23   这个数据计算到5月13日
 1        28     2013-05-13 22:23   这个数据计算到5月13日
 1        20     2013-05-14 02:23   这个数据计算到5月13日
 1        20     2013-05-14 06:23   这个数据计算到5月14日
 2        20     2013-05-14 08:23   这个数据计算到5月14日
 2        20     2013-05-14 08:23   这个数据计算到5月14日


intime设计到跨天(0点起顺延6个小时  为一天计算,

怎么写sql语句把以上数据表变为
userid  total   intime              
 1        5      2013-05-12    这个数据计算到5月12日
 1        78     2013-05-13   这个数据计算到5月13日
 1        28     2013-05-13    这个数据计算到5月13日
 1        20     2013-05-13  这个数据计算到5月13日
 1        20     2013-05-14    这个数据计算到5月14日
 2        20     2013-05-14    这个数据计算到5月14日
 2        20     2013-05-14   这个数据计算到5月14日

我要根据intime做group by 求  userid  total的和  谢谢




[解决办法]

----------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-05-20 21:26:54
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) 
--Jun 17 2011 00:57:23 
--Copyright (c) Microsoft Corporation
--Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go 
create table [tb]([userid] int,[total] int,[intime] datetime)
insert [tb]
select 1,5,'2013-05-13 01:23' union all
select 1,78,'2013-05-13 09:23' union all


select 1,28,'2013-05-13 22:23' union all
select 1,20,'2013-05-14 02:23' union all
select 1,20,'2013-05-14 06:23' union all
select 2,20,'2013-05-14 08:23' union all
select 2,20,'2013-05-14 08:23'
--------------开始查询--------------------------

select CASE WHEN DATEPART(hh,intime) BETWEEN 0 AND 6 THEN CONVERT(DATE,DATEADD(dd,-1,intime)) ELSE CONVERT(DATE,intime) END [intime]
from [tb]
----------------结果----------------------------
/* 
intime
----------
2013-05-12
2013-05-13
2013-05-13
2013-05-13
2013-05-13
2013-05-14
2013-05-14
*/

热点排行