--硬来就这样 --> 测试数据:@table declare @table table([通知书编号] varchar(5),[订仓号] varchar(3),[运输公司] varchar(4),[运输工具] varchar(2),[走货日期] varchar(10),[箱数] int,[订单数] int,[CBM] numeric(5,2)) insert @table select 'SO001','dfg','顺风','5T','2009-11-23',20,80,62.46 union all select 'SO002','jkh','ups','3t','2009-11-23',50,200,150.12 --需处理数据 select * into #temp from @table where convert(varchar(10),cast(走货日期 as datetime),101)>='11/23/2009' and convert(varchar(10),cast(走货日期 as datetime),101)<='11/23/2009'--查询 select '通知书编号', '订仓号', '运输公司', '运输工具','走货日期', '箱数','订单数','CBM' union all select 通知书编号,订仓号,运输公司,运输工具,走货日期,cast(箱数 as varchar(10)),cast(订单数 as varchar(10)),cast(CBM as varchar(10)) from #temp union all select '','','','','','','','' union all select '运输工具','数量','','','','','','' union all select 运输工具,cast(count(1) as varchar(10)) as 数量 ,'','','','','','' from #temp group by 运输工具 union all select '','','','','','','','' union all select '累计数量:',cast(sum(订单数) as varchar(10)) ,'累计箱数:',cast(sum(箱数) as varchar(10)),'累计CBM:',cast(sum(CBM) as varchar(10)),'','' from #temp drop table #temp --结果 ---------------------------- 通知书编号 订仓号 运输公司 运输工具 走货日期 箱数 订单数 CBM SO001 dfg 顺风 5T 2009-11-23 20 80 62.46 SO002 jkh ups 3t 2009-11-23 50 200 150.12
这个应该是在报表里面做的事情吧
实在要的话, 就这样吧
-- =============================================
-- Author: T.O.P
-- Create date: 2009/11/23
-- Version: SQL SERVER 2005
-- =============================================
declare @TB table([通知书编号] varchar(5),[订仓号] varchar(3),[运输公司] varchar(4),[运输工具] varchar(2),[走货日期] datetime,[箱数] int,[订单数] int,[CBM] numeric(5,2))
insert @TB
select 'SO001','dfg','顺风','5T','2009-11-23',20,80,62.46 union all
select 'SO002','jkh','ups','3t','2009-11-23',50,200,150.12select [运输工具] ,CAST(COUNT(*) AS NVARCHAR(10)) AS 数量
from @TB
GROUP BY [运输工具]
UNION ALL
SELECT '' AS [运输工具], '累计数量:'+CAST(SUM(订单数) AS NVARCHAR(10))+' 累计箱数:'+CAST(SUM(箱数) AS NVARCHAR(10))+' 累计CBM'+CAST(SUM(CBM) AS NVARCHAR(10)) AS 数量
FROM @TB
--测试结果:
/*
运输工具 数量
---- -----------------------------------------------------------
3t 1
5T 1
累计数量:280 累计箱数:70 累计CBM212.58(3 row(s) affected)*/
-- Author: T.O.P
-- Create date: 2009/11/23
-- Version: SQL SERVER 2005
-- =============================================
declare @TB table([通知书编号] varchar(5),[订仓号] varchar(3),[运输公司] varchar(4),[运输工具] varchar(2),[走货日期] datetime,[箱数] int,[订单数] int,[CBM] numeric(5,2))
insert @TB
select 'SO001','dfg','顺风','5T','2009-11-23',20,80,62.46 union all
select 'SO002','jkh','ups','3t','2009-11-23',50,200,150.12select [运输工具] ,CAST(COUNT(*) AS NVARCHAR(10)) AS 数量
from @TB
GROUP BY [运输工具]
UNION ALL
SELECT '' AS [运输工具], '累计数量:'+CAST(SUM(订单数) AS NVARCHAR(10))+' 累计箱数:'+CAST(SUM(箱数) AS NVARCHAR(10))+' 累计CBM:'+CAST(SUM(CBM) AS NVARCHAR(10)) AS 数量
FROM @TB
--测试结果:
/*
运输工具 数量
---- ------------------------------------------------------------
3t 1
5T 1
累计数量:280 累计箱数:70 累计CBM:212.58(3 row(s) affected)
*/
查出以下所有资料:
通知书编号 订仓号 运输公司 运输工具 走货日期 箱数 订单数 CBM
SO001 dfg 顺风 5T 2009-11-23 20 80 62.46
SO002 jkh ups 3t 2009-11-23 50 200 150.12
运输工具 数量
5T 1
3T 1
累计数量:280 累计箱数:70 累计CBM:212.58
--硬来就这样
--> 测试数据:@table
declare @table table([通知书编号] varchar(5),[订仓号] varchar(3),[运输公司] varchar(4),[运输工具] varchar(2),[走货日期] varchar(10),[箱数] int,[订单数] int,[CBM] numeric(5,2))
insert @table
select 'SO001','dfg','顺风','5T','2009-11-23',20,80,62.46 union all
select 'SO002','jkh','ups','3t','2009-11-23',50,200,150.12
--需处理数据
select * into #temp from @table
where convert(varchar(10),cast(走货日期 as datetime),101)>='11/23/2009'
and convert(varchar(10),cast(走货日期 as datetime),101)<='11/23/2009'--查询
select '通知书编号', '订仓号', '运输公司', '运输工具','走货日期', '箱数','订单数','CBM'
union all
select 通知书编号,订仓号,运输公司,运输工具,走货日期,cast(箱数 as varchar(10)),cast(订单数 as varchar(10)),cast(CBM as varchar(10)) from #temp
union all
select '','','','','','','',''
union all
select '运输工具','数量','','','','','',''
union all
select 运输工具,cast(count(1) as varchar(10)) as 数量 ,'','','','','',''
from #temp
group by 运输工具
union all
select '','','','','','','',''
union all
select '累计数量:',cast(sum(订单数) as varchar(10)) ,'累计箱数:',cast(sum(箱数) as varchar(10)),'累计CBM:',cast(sum(CBM) as varchar(10)),'',''
from #temp
drop table #temp
--结果
----------------------------
通知书编号 订仓号 运输公司 运输工具 走货日期 箱数 订单数 CBM
SO001 dfg 顺风 5T 2009-11-23 20 80 62.46
SO002 jkh ups 3t 2009-11-23 50 200 150.12
运输工具 数量
3t 1
5T 1
累计数量: 280 累计箱数: 70 累计CBM: 212.58