导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

怎样插入这样的一些行?

wbdragon 2002-03-23 08:34:32
我的数据库中有很多的记录,其中我对这些数据进行了分类统计,我想行到这样的一个结果,那就是,把各类的数量按类显示,并把这类的统计结果(行)放在其类的最后一行,特些说明,有很多的类.请各们指教.
...全文
3 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
SE1 2002-03-25
假设表结构为:
产品类型、产品名称、数量
你希望获得的结果是否是这样的:
把所有的产品按照产品类型分类,把类型相同的产品放到一起,然后紧接在后面是这种类型的产品数量的小计;最后则是所有产品数量的合计?

如果上面就是你的要求,那么在SQL SERVER中可以如此:
SELECT CASE WHEN (GROUPING(产品类型) = 1) THEN '合计'
ELSE ISNULL(产品类型, 'UNKNOWN')
END AS 产品类型,
CASE WHEN (GROUPING(产品类型) = 1 and GROUPING(产品名称) = 1) THEN '合计'
WHEN (GROUPING(产品类型) = 0 and GROUPING(产品名称) = 1) THEN '小计'
ELSE ISNULL(产品名称, 'UNKNOWN')
END AS 产品名称,
SUM(数量) AS 数量
FROM YourTable
GROUP BY 产品类型,产品名称 WITH ROLLUP

回复
CSDNM 2002-03-25
SELECT CASE WHEN TYPE=2 THEN '小计' ELSE 名称 END AS 名称,CASE WHEN TYPE=2 THEN ' ' ELSE 国标代号 END AS 国标代号,数量,项号,安装代号...
FROM (
SELECT 名称,国标代号,数量,1 AS TYPE,项号,安装代号...
FROM NAME
UNIT ALL
SELECT 名称,国标代号,SUM(数量) AS 数量,2 AS TYPE,'' AS 项号,'' AS 安装代号...
FROM NAME
GROUP BY 名称,国标代号
)
ORDER BY 名称,国标代号,TYPE

回复
wbdragon 2002-03-25
大家好,感谢热心的各位。不过问题还没有解决
表结构如下:
table name( 项号,名称,国标代号,安装代号,数量。。。。)
其中,同一名称有不同国标代号,,相同国标代号,有不同名称,安装代号每项一个,现在我想得到这样的结果,按国标代号和名称相同为分类条件,并小计数量,小计行放在该类的最后一行后。这样的类非常多。数据量很大。
回复
流星尔 2002-03-24
select class,total,field1,field2…… from (select class," " as total,field1,field2,field3…… from tablename
union
select class,"小计" as total,sum(field1) as field1,sum(field2) as field2,…… from tablename) c order by class,total
回复
cxmcxm 2002-03-24
字段:类别,数量,其它字段
表名:aa
1、select 类别,数量,其它字段 into #temp1 from aa order by 类别
2、select identity(int,1,1) id,* into #temp2 from #temp1
3、select * from
(select max(id)+1 id,类别,sum(数量),其它字段填上与字段相同类别的常数 from #temp2 group by 类别 union all select * from #temp2) bb
order by 类别,id
输出结果就是你所要的。再删除#temp1,#temp2





回复
LiaoCheng 2002-03-23
贴出表结构,和你想要的结果
回复
CSDNM 2002-03-23
呵呵,你发在 SQL SERVER 版,我看错了!!
回复
CSDNM 2002-03-23
假设表结构如下:
class,qty

如果SQLSERVER:

SELECT CASE WHEN TYPE=2 THEN '小计' ELSE CLASS END AS CLASS,QTY
FROM (
SELECT class,qty,1 AS TYPE FROM TABLENAME
UNIT ALL
SELECT CLASS,SUN(QTY) AS QTY,2 AS TYPE FROM TABLENAME
GROUP BY CLASS
) AS A
ORDER BY CLASS,TYPE

你没有说明你的数据库,其他的数据库也能从这里修改。

回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告