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

急求一sql语句,结果

2012-12-30 
急求一sql语句,在线等结果表table1codedetpzu28新客户邀约部一组29新客户邀约部二组30新客户邀约部三组31

急求一sql语句,在线等结果
表table1
code       detp         zu
28新客户邀约部一组
29新客户邀约部二组
30新客户邀约部三组
31新客户邀约部五组
32新客户邀约部六组
33新客户邀约部八组
34新客户邀约部九组
35新客户邀约部十二组
36新客户邀约部十六组
37新客户邀约部十八组

表table2
codeid  amount    createtime
28102012-10-01
28102012-10-02
2822012-10-03
281232012-10-04

table1和table2中code和codeid为关联字段
根据table2中createtime字段转换成列统计显示每天amount数量,并统计每行、每列的合计
要求显示出来结果格式为:

detp            zu        1日 2日 3日 4日 5日 6日 7日 8日 9日 10日  ......  合计 
新客户邀约部    一组       10  10  2   123                                     145         
新客户邀约部    二组                                                             
新客户邀约部    三组                                                                 
新客户邀约部    五组                                                               
新客户邀约部    六组                                                                
新客户邀约部    九组                                                              
新客户邀约部    十二组                                                                 
新客户邀约部    十六组                                                                


新客户邀约部    十八组   
                 合计      10    10   2  123                              
[解决办法]



with tb
as(
select a.*,b.amount,b.createtime 
from table1 a,table2 b where a.code=b.codeid
)


那个连接你会了吧   在那个结果上
select
    detp,
    zu ,
    [1日]=sum(case when day(createtime)= 1 then  amount else 0 end),
    [2日]=sum(case when day(createtime)= 2 then  amount else 0 end),
    [3日]=sum(case when day(createtime)= 3 then  amount else 0 end),
    [4日]=sum(case when day(createtime)= 4 then  amount else 0 end),
    [5日]=sum(case when day(createtime)= 5 then  amount else 0 end)
    ......
from
    tb
group by
    detp,
    zu 

[解决办法]
好費事..
等等給你送上動態的..

USE test
go

---->生成表table1
--
--if object_id('table1') is not null 
--drop table table1
--Go
--Create table table1([code] smallint,[detp] nvarchar(6),[zu] nvarchar(3))
--Insert into table1
--Select 28,N'新客户邀约部',N'一组'
--Union all Select 29,N'新客户邀约部',N'二组'
--Union all Select 30,N'新客户邀约部',N'三组'
--Union all Select 31,N'新客户邀约部',N'五组'
--Union all Select 32,N'新客户邀约部',N'六组'
--Union all Select 33,N'新客户邀约部',N'八组'
--Union all Select 34,N'新客户邀约部',N'九组'
--Union all Select 35,N'新客户邀约部',N'十二组'
--Union all Select 36,N'新客户邀约部',N'十六组'
--Union all Select 37,N'新客户邀约部',N'十八组'
--
---->生成表table2
--
--if object_id('table2') is not null 
--drop table table2
--Go
--Create table table2([codeid] smallint,[amount] smallint,[createtime] datetime)
--Insert into table2
--Select 28,10,'2012-10-01'
--Union all Select 28,10,'2012-10-02'
--Union all Select 28,2,'2012-10-03'
--Union all Select 28,123,'2012-10-04'


DECLARE @date DATETIME

SET @date='2012-10-01'    -- 要計算的月份的第一天

;WITH cte_Date AS(
SELECT 
DATEADD(dd,number,@date) AS Date 
FROM master..spt_values 
WHERE type='p' 
AND number<=DATEDIFF(dd,@date,DATEADD(mm,1,@date))
)
,cte_Model AS(
SELECT
b.code
,b.detp
,b.zu
,LTRIM(DAY(a.Date))+'日' AS Col
,ISNULL(SUM(c.amount),'') AS amount
FROM cte_Date AS a
FULL JOIN table1 AS b ON 1=1
LEFT JOIN table2 AS c ON a.Date=c.createtime And b.code=c.codeid


GROUP BY 
a.Date
,b.code
,b.detp
,b.zu
UNION ALL
SELECT 
a.code
,a.detp
,a.zu
,N'合计'
,ISNULL(SUM(b.amount),0)
FROM table1 AS a
LEFT JOIN table2 AS b ON a.code=b.codeid
GROUP BY
a.code
,a.detp
,a.zu
)
,cte_Result AS (
SELECT 
code
,detp
,zu
,[1日],[2日],[3日],[4日],[5日],[6日],[7日],[8日],[9日],[10日],[11日],[12日],[13日],[14日],[15日],[16日],[17日],[18日],[19日],[20日],[21日],[22日],[23日],[24日],[25日],[26日],[27日],[28日],[29日],[30日],[合计] 
FROM cte_Model AS a
PIVOT (
SUM(amount) FOR Col IN([1日],[2日],[3日],[4日],[5日],[6日],[7日],[8日],[9日],[10日],[11日],[12日],[13日],[14日],[15日],[16日],[17日],[18日],[19日],[20日],[21日],[22日],[23日],[24日],[25日],[26日],[27日],[28日],[29日],[30日],[合计])
) AS p
)
select * From cte_Result
Union all 
select 
N''
,N''
,N'合计'
,Sum([1日]) AS [1日]
,Sum([2日]) AS [2日]
,Sum([3日]) AS [3日]
,Sum([4日]) AS [4日]
,Sum([5日]) AS [5日]
,Sum([6日]) AS [6日]
,Sum([7日]) AS [7日]
,Sum([8日]) AS [8日]
,Sum([9日]) AS [9日]
,Sum([10日]) AS [10日]
,Sum([11日]) AS [11日]
,Sum([12日]) AS [12日]
,Sum([13日]) AS [13日]
,Sum([14日]) AS [14日]
,Sum([15日]) AS [15日]
,Sum([16日]) AS [16日]
,Sum([17日]) AS [17日]
,Sum([18日]) AS [18日]
,Sum([19日]) AS [19日]
,Sum([20日]) AS [20日]
,Sum([21日]) AS [21日]
,Sum([22日]) AS [22日]
,Sum([23日]) AS [23日]
,Sum([24日]) AS [24日]
,Sum([25日]) AS [25日]
,Sum([26日]) AS [26日]
,Sum([27日]) AS [27日]
,Sum([28日]) AS [28日]
,Sum([29日]) AS [29日]
,Sum([30日]) AS [30日]
,Sum([合计]) AS [合计] 
FROM cte_Result

/*
code   detp   zu   1日          2日          3日          4日          5日          6日          7日          8日          9日          10日         11日         12日         13日         14日         15日         16日         17日         18日         19日         20日         21日         22日         23日         24日         25日         26日         27日         28日         29日         30日         合计


------ ------ ---- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
28     新客户邀约部 一组   10          10          2           123         0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           145
29     新客户邀约部 二组   0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0


30     新客户邀约部 三组   0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0
31     新客户邀约部 五组   0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0


32     新客户邀约部 六组   0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0
33     新客户邀约部 八组   0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0


34     新客户邀约部 九组   0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0
35     新客户邀约部 十二组  0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0


36     新客户邀约部 十六组  0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0
37     新客户邀约部 十八组  0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0


0             合计   10          10          2           123         0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           0           145
*/

Go

热点排行