‘壹’ 跪求,sql命令实现分类汇总统计
--1.建表
CreateTableT
(
地区Varchar(10),
姓名Varchar(10),
性别Varchar(2),
名族Varchar(10),
单位类型Varchar(50)
)
--2.插入测试数据
InsertIntoTValues('北京','张三','男','汉族','企业')
InsertIntoTValues('天津','李四','女','回族','公务员')
InsertIntoTValues('上海','王五','男','汉族','事业单位')
InsertIntoTValues('东北','周一','女','壮族','创业')
InsertIntoTValues('北京','李二','男','藏族','公务员')
--3.查询结果
Declare@ForinVarchar(4000)='[男],[女]'
Declare@FieldVarchar(4000)='Isnull(男,0)AS男,Isnull(女,0)As女'
--动态拼接名族
Select@Forin=@Forin+',['+名族+']',
@Field=@Field+',Isnull('+名族+',0)As'+名族
From
(
SelectDistinct名族FromT
)S
--动态拼接单位类型
Select@Forin=@Forin+',['+单位类型+']',
@Field=@Field+',Isnull('+单位类型+',0)As'+单位类型
From
(
SelectDistinct单位类型FromT
)S
--分别按地区性别,地区名族和地区单位类型分组统计人数,然后再行列转换
Exec
(
'Select项目,'+@Field+'From
(
Select地区As项目,性别As值,Count(*)As人数FromTGroupBy地区,性别
UnionAll
Select地区As项目,名族As值,COUNT(*)As人数FromTGroupBy地区,名族
UnionAll
Select地区As项目,单位类型As值,COUNT(*)As人数FromTGroupBy地区,单位类型
)s
Pivot
(
Max(人数)
For值in('+@Forin+')
)pvt'
)
‘贰’ sql如何按天和类别分类汇总
selectconvert(varchar(10),a.rq,120),B,isnull(count(*),0)
(select
cast('2014-01-10'asdatetime)+number-1rq
frommaster..spt_valueswheretype='P'andnumberbetween1and(selectdatediff(day,cast('2014-01-10'asdatetime),cast('2014-01-13'asdatetime)))+1)asa
leftjoinTbNamebonconvert(varchar(10),a.rq,120)=convert(char(10),b.A,120)
groupbyconvert(varchar(10),a.rq,120),B
这样试试
主要是你把这句弄懂了就行,用这个构造一个时间的虚拟列
select
cast('2014-01-10'asdatetime)+number-1rq
frommaster..spt_valueswheretype='P'andnumberbetween1and(selectdatediff(day,cast('2014-01-10'asdatetime),cast('2014-01-13'asdatetime)))+1
‘叁’ SQL每日累计
select t1.日期,
t1.每日产量,
(select sum(t2.每日产量)
from yourtable t2
where substr('t2.日期', 1, 1) <= substr('t1.日期', 1, 1)) as 累计产量
from yourtable t1
‘肆’ sql 分类汇总的问题
用FOR XML PATH('')语法吧:
SELECT
m.批次号
,m.部番
,m.后缀
,(select工番+','fromTable1tWHEREt.批次号=m.批次号ANDt.部番=m.部番ANDt.后缀=m.后缀forXMLPATH(''))AS'工番'
FROMTable1m
GROUPBY批次号,部番,后缀
‘伍’ sql 分类汇总统计
‘陆’ SQL 分类汇总的方法!
sql="select MatCode,MatName,DZh,BaseUOM,count(MatNumber) as zMatNumber from sqsp where DZzt='已确定' group by MatCode,MatName,DZh,BaseUOM ORDER BY MatCode ASC"
‘柒’ sql分类汇总如何实现
select片区,客户,产品名称,sum(数量)frombiaogroupby片区,客户,产品名称
‘捌’ SQL查询结果分类汇总
SELECT A.*, COUNT(A.货号) AS 货号汇总, (A.规格汇总/ COUNT(A.货号)) AS 比例 FROM
(
select GoodsNO as 货号,GoodsName as 品名,SpecName as 规格,SUM(SellCount) as 规格汇总 from V_SSTTradeGoodsList where DateDiff(dd,Tradetime,getdate())<=30
GROUP BY GoodsNO,GoodsName,SpecName
)A
‘玖’ sql 一个表想把表中记录这个月的某 个产品每天的产量求出来 sql语句怎么写
selectconvert(varchar(10),时间字段,120)日期,产品名称,sum(产量)产量from产品表
whereconvert(varchar(7),时间字段,120)='2014-05'and产品名称='XXX'
groupbyconvert(varchar(10),时间字段,120)
就是按日期分组,求产量的,你看看行不行。