`

某一类日期范围内每7天一组的销量之和,以及行转列

 
阅读更多
set @sqlstr =
	'
	select MIDDLECLASS, groupid, sum(Quantity) period_sum ,min(C_date) period_min_date,max(C_date) period_max_date  from(
	
    SELECT A.SkuCode,a.Quantity, a.C_date, datediff(day,''' +@B_time+  ''',CONVERT(varchar(100), a.C_date, 23) )/7 as groupid,
    p.MIDDLECLASS
    
    FROM dbo.OmsSale A LEFT JOIN   MF_BarCode B  ON A.SkuCode = B.SKU
     
    join DSBase_DB.dbo.v_productCode_class p on B.productcode=p.GOODSCODE

  WHERE CONVERT(varchar(100), C_date, 23) >= ''' +@B_time+  ''' AND CONVERT(varchar(100), C_date, 23)<= ''' +@E_time+ ''' 
    ) t 
    group by t.MIDDLECLASS,t.groupid 
    order by t.MIDDLECLASS,t.groupid 
   '  ;   

	/*
	IF(ISNULL(@Lswhere,'')<>'')  
		begin
			 SET @sqlstr=@sqlstr+' AND storename ='''+@Lswhere+''''
		end
	*/	
		 
	EXEC(@sqlstr);

 得到的结果:

 实现 某一类日期范围内每7天一组的销量之和,参考:http://www.cnblogs.com/wang3680/p/6056882.html

 

 

 

行转列,要调用上面的存储过程的结果集:

ALTER proc [dbo].[S_trend_row2column]
	   @B_time   varchar(30), 
       @E_time   varchar(30),
       @FunID    smallint
as      
begin  
	
	DECLARE @sql_str VARCHAR(8000)
		
    DECLARE @sql_col VARCHAR(8000);
	declare @demp table(MIDDLECLASS varchar(50),groupid int,period_sum int,period_min_date datetime,period_max_date datetime);
	
	insert into @demp exec S_trend @B_time,@E_time,0;
	--select * from @demp
	SELECT @sql_col = ISNULL(@sql_col + ',' , '') +  QUOTENAME(groupid)  FROM @demp GROUP BY groupid order by groupid  ;
	--print (@sql_col)
   
	SET @sql_str = '
 
	declare @demp table(MIDDLECLASS varchar(50),groupid varchar(50),period_sum int,period_min_date datetime,period_max_date datetime);
	
	insert into @demp exec S_trend '''+@B_time+''','''+@E_time+''',0;
 
 
	SELECT * FROM (
		SELECT [MIDDLECLASS],groupid,[period_sum] FROM @demp) p PIVOT 
		( SUM([period_sum]) FOR [groupid] IN ('+@sql_col+')
		) AS pvt ORDER BY pvt.[MIDDLECLASS]';
	
	--print (@sql_str)
	
    EXEC(@sql_str);

 

 

  • 大小: 36.4 KB
  • 大小: 49.6 KB
0
1
分享到:
评论
1 楼 masuweng 2017-06-16  
     

相关推荐

    《Excel应用大全》示例文件 光盘文件

    • 计算目标日期所在季度的最后一天 • 返回目标日期是全年中的第几天 • 判断是否为闰年 • DATEDIF函数基本用法 • 利用日期函数计算员工工龄 • 计算指定日期的星期值 • 计算上月月末日期的星期 • 指定某月的第...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例076 批量替换某一类字符串 95 实例077 把异常与错误信息显示到窗体中 97 实例078 从字符串中分离文件路径、 文件名及扩展名 98 实例079 判断手机号的合法性 99 实例080 用字符串构建器追加字符 100 实例081 去掉...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例143 获取系统中的特定日期和时间 171 实例144 比较时间的大小 172 实例145 计算考试时间 173 实例146 倒计时 173 实例147 网页闹钟 174 实例148 计算程序运行时间 176 第3章 Web页面交互 178 3.1 获取表单元素的...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例143 获取系统中的特定日期和时间 171 实例144 比较时间的大小 172 实例145 计算考试时间 173 实例146 倒计时 173 实例147 网页闹钟 174 实例148 计算程序运行时间 176 第3章 Web页面交互 178 3.1 获取表单元素的...

    LINGO软件的学习

    每个集成员可能有一个或多个与之有关联的特征,我们把这些特征称为属性。属性值可以预先给定,也可以是未知的,有待于LINGO求解。例如,产品集中的每个产品可以有一个价格属性;卡车集中的每辆卡车可以有一个牵引力...

    东财20春《饭店营销理论与实务》在线作业一满分答案-0008.docx

    ### 东财20春《饭店营销理论与实务》在线作业一知识点解析 #### 题目解析概览 本次作业题目围绕饭店营销的核心概念展开,涵盖了顾客价值、分销渠道功能、品牌策略、服务导向、公关活动、营销观念演变、定位策略、...

Global site tag (gtag.js) - Google Analytics