22,209
社区成员
发帖
与我相关
我的任务
分享
declare @strsql varchar(max)
select @strsql='';
select @strsql='select time '
select @strsql=@strsql+',(select COUNT(*) from #a1 where left(convert(varchar(10),time,120),7)=A.time and province='''+province+''') '+province from #a1 group by province
select @strsql=@strsql+' from(select time= left(CONVERT(varchar(10),time,120),7) from #a1 group by left(CONVERT(varchar(10),time,120),7) ) A'
exec(@strsql)
WITH a1 (orderid,province,TIME) AS
(
SELECT 13359,'北京','2013/08/02' UNION ALL
SELECT 14327,'北京','2013/07/16' UNION ALL
SELECT 19284,'北京','2013/06/02' UNION ALL
SELECT 19284,'北京','2013/06/03' UNION ALL
SELECT 13342,'广东','2013/06/04' UNION ALL
SELECT 12332,'四川','2013/05/03' UNION ALL
SELECT 23333,'四川','2013/04/02'
)
SELECT * INTO #temp FROM a1
DECLARE @sql VARCHAR(MAX), @colList VARCHAR(MAX)
SET @colList = STUFF(
(
SELECT ','+QUOTENAME(province)
FROM (SELECT DISTINCT province FROM #temp) t
FOR XML PATH('')
),1,1,'')
SET @sql = '
select *
from (select CONVERT(char(7),TIME,120) time,province,1 n from #temp) a
pivot
(sum(n) for province in('+ @colList +')) b'
EXEC(@sql)
WITH a1 (orderid,province,TIME) AS
(
SELECT 13359,'北京','2013/08/02' UNION ALL
SELECT 14327,'北京','2013/07/16' UNION ALL
SELECT 19284,'北京','2013/06/02' UNION ALL
SELECT 13342,'广东','2013/06/04' UNION ALL
SELECT 12332,'四川','2013/05/03' UNION ALL
SELECT 23333,'四川','2013/04/02'
)
SELECT * INTO #temp FROM a1
DECLARE @sql VARCHAR(MAX), @colList VARCHAR(MAX)
SET @colList = STUFF(
(
SELECT ','+QUOTENAME(province)
FROM (SELECT DISTINCT province FROM #temp) t
FOR XML PATH('')
),1,1,'')
SET @sql = '
select *
from (select TIME,province,1 n from #temp) a
pivot
(sum(n) for province in('+ @colList +')) b'
EXEC(@sql)