疑难分组统计问题。

czyoooo 2018-11-28 10:59:58
表:
CREATED PROFIT
2018-11-27 05:00 11.00
2018-11-28 06:00 5.00
2018-11-28 09:00 1.00
2018-11-28 12:00 2.00
2018-11-28 12:20 6.00
要求查询结果:
时间段0-7点 时间段9-18点 时间段19-23点
2018-11-17 11 0 0
2018-11-18 5 9 0
...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-11-29
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('dbo.[t]') IS NOT NULL 
	DROP TABLE dbo.[t]
GO
CREATE TABLE dbo.[t](
[CREATED] DATETIME
,[PROFIT] DECIMAL(10,3)	
)
GO
SET NOCOUNT ON
INSERT INTO dbo.[t] VALUES(N'2018-11-27 05:00',N'11.00')
INSERT INTO dbo.[t] VALUES(N'2018-11-28 06:00',N'5.00')
INSERT INTO dbo.[t] VALUES(N'2018-11-28 09:00',N'1.00')
INSERT INTO dbo.[t] VALUES(N'2018-11-28 12:00',N'2.00')
INSERT INTO dbo.[t] VALUES(N'2018-11-28 12:20',N'6.00')
GO

SELECT
 CONVERT(CHAR(10),[CREATED],120) AS [date]
,SUM(CASE WHEN DATEPART(hour,[CREATED]) BETWEEN 0 AND 8 THEN [PROFIT] ELSE 0 END) AS [0-8]
,SUM(CASE WHEN DATEPART(hour,[CREATED]) BETWEEN 9 AND 18 THEN [PROFIT] ELSE 0 END) AS [9-18]
,SUM(CASE WHEN DATEPART(hour,[CREATED]) BETWEEN 19 AND 23 THEN [PROFIT] ELSE 0 END) AS [19-23]
FROM t
GROUP BY CONVERT(CHAR(10),[CREATED],120)


二月十六 2018-11-29
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([CREATED] DATETIME,[PROFIT] decimal(18,8))
Insert #T
select N'2018-11-27 05:00',11.00 union all
select N'2018-11-28 06:00',5.00 union all
select N'2018-11-28 09:00',1.00 union all
select N'2018-11-28 12:00',2.00 union all
select N'2018-11-28 12:20',6.00
Go
--测试数据结束
SELECT CONVERT(CHAR(10),CREATED,120) 日期 ,
SUM(CASE WHEN
CONVERT(CHAR(8),CREATED,108) BETWEEN '00:00' AND '07:00'
THEN PROFIT
ELSE 0
END) [时间段0-7点 ],
SUM(CASE WHEN
CONVERT(CHAR(8),CREATED,108) BETWEEN '09:00' AND '18:00'
THEN PROFIT
ELSE 0
END) [时间段9-18点 ] ,
SUM(CASE WHEN
CONVERT(CHAR(8),CREATED,108) BETWEEN '19:00' AND '23:00'
THEN PROFIT
ELSE 0
END) [时间段19-23点 ]
FROM #T
GROUP BY CONVERT(CHAR(10),CREATED,120)





22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧