sql 按照小时分组查询并统计

[复制链接]
查看11 | 回复5 | 2016-3-6 18:26:53 | 显示全部楼层 |阅读模式
-- 模拟销售的表.CREATE TABLE #temp ([销售时间]datetime,[销量]
int,[实销]
int)go-- 由于成本与毛利, 我估计应该是在另外一个表里面的, 这里就不模拟了INSERT INTO #temp-- 9点的SELECT '2013-07-16 09:55:15', 9,900
UNION ALL-- 10点的SELECT '2013-07-16 10:15:15', 1,100
UNION ALLSELECT '2013-07-16 10:25:15', 15, 1500
UNION ALLSELECT '2013-07-16 10:3...
回复

使用道具 举报

千问 | 2016-3-6 18:26:53 | 显示全部楼层
1、创建表Sale_Order 主键Order_No,这个表存储日常的销售数据;CREATE TABLE dbo.SALE_ORDER(Order_No
NVARCHAR (6) NOT NULL,Sale_Date
DATETIME,Sale_Qty
INT,Sale_Am...
回复

使用道具 举报

千问 | 2016-3-6 18:26:53 | 显示全部楼层
这个用查询语句是做不出来的需要用游标 思路:定义游标:查询你需要的字段及范围,记得按时间排序 返回一张临时表 变量,当前时段 逐行: 若该记录的时段与变量的当前时段相同,将临时表中的对应时段数据进行 行的累加(或平均数等操作) 若该记录的时段与变量的当前时段不同,在临时表中新增一个时段,将该数据一同新增...
回复

使用道具 举报

千问 | 2016-3-6 18:26:53 | 显示全部楼层
用一句SQL语句完成似乎不太可能。select '9-10' as 销售时段,sum(销量) as 销量,sum(实销) as实销,sum(累计实销) as 累计实销),sum(成本) as成本, sum( 毛利) as 毛利 from 销售表 where time>='9' and time<'10'unionselect '9-10' as ...
回复

使用道具 举报

千问 | 2016-3-6 18:26:53 | 显示全部楼层
select datepart(hh,[销售时间]), as [销售时段],sum([销量]) as [销量],sum([实销]) as[实销],sum([累计实销]) as [累计实销],sum([成本]) as [成本],sum( [毛利])as [毛利]from [销售表]group by datepart(hh,[销售时间]),...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行