小计与合合计

chenam 2003-09-12 02:22:21
一张表有如下字段
gysmc(供应商名称),clmc(材料名称),sl(数量)
我想得到如下效果。

公司一 ,材料1,20
公司一,材料2,10
公司一     30
公司二,材料1,5
公司二    5

怎样写sql 语句呀?谢谢了。
...全文
104 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
老宛 2003-09-12
  • 打赏
  • 举报
回复
select gysmc,clmc,sum(sl)[sl] into #a from test2
group by gysmc,clmc with rollup
update #a set clmc=case when len(isnull(gysmc,''))=0 then '总计'
else isnull(clmc,'小计') end,gysmc=isnull(clmc,'')
select * from #a
drop table #a
meng___xuan 2003-09-12
  • 打赏
  • 举报
回复
好像下面的办法不行,你们查血的时候没有过滤,会出现很多没有的纪录,你们看看。我感觉还是剑琴搂住得不错。UP.
lfangxiao 2003-09-12
  • 打赏
  • 举报
回复
用这条语句也可以,刚刚那条太复杂了:

SELECT CASE WHEN (GROUPING(gysmc) = 1) THEN '总计'
ELSE ISNULL(gysmc, 'UNKNOWN')
END AS gysmc,
CASE WHEN (GROUPING(clmc) = 1) THEN ''
ELSE ISNULL(clmc, 'UNKNOWN')
END AS clmc,
SUM(sl) AS sl
FROM 你的表
GROUP BY gysmc, clmc WITH ROLLUP
happydreamer 2003-09-12
  • 打赏
  • 举报
回复


select gysmc ,clmc,sl
from
(
select * ,gysmc as flag1 from c
union all
select gysmc,' ',sum( sl) sl ,gysmc from c group by gysmc
union all
select '总计',' ',sum(sl) sl,' ' from c
) b
order by flag1 desc
happydreamer 2003-09-12
  • 打赏
  • 举报
回复


select gysmc ,clmc,sl
from
(
select * ,gysmc as flag1 from c
union all
select gysmc,' ',sum( sl) sl ,gysmc from c group by gysmc
union all
select '总计',' ',sum(sl) sl,' ' from c
) b
order by flag1 desc
lusemaomaochong 2003-09-12
  • 打赏
  • 举报
回复
select 公司,材料,sum(sl) from table where 条件 group by 公司,材料 with rollup
lfangxiao 2003-09-12
  • 打赏
  • 举报
回复
对了,这样排序不行,自己增加一个排序的字段吧
lfangxiao 2003-09-12
  • 打赏
  • 举报
回复
SELECT * FROM table1
UNION
SELECT gysmc,'' AS clmc,sl FROM (SELECT gysmc,SUM(sl) AS sl FROM table1)
UNION
SELECT '总计' AS gysmc,'' AS clmc,sl FROM (SELECT SUM(sl) AS FROM table1)
ORDER BY 1,2
伍子V5 2003-09-12
  • 打赏
  • 举报
回复
select gysmc as 供应商名称,clmc as 材料名称,sum(sl) as 合计
from 表
group by gysmc,clmc with cube
chenam 2003-09-12
  • 打赏
  • 举报
回复
公司一 ,材料1,20
公司一,材料2,10
公司一     30
公司二,材料1,5
公司二    5
总计 35
【公农双历查询】:生成多功能日历,可以查询所有节、假日和农历 【高级定位】:多功能选择(查找)工具。可以选择大于某值或者小于某值或者在某范围之间的值,文本定位时支持通配符。还可以按格式查找/定位 【背景着色】:将当前或者列进行颜色标示,以突出显示,有利于数据查看。可以随心所欲地定义颜色,还可以自由调整颜色的深浅。本工具相对于同类工具有不破坏背景色、条件格式、复制粘贴和撤消功能之优点 【环境设置】:设置工作表界面视图,控制各项目的显示与隐藏 【隐藏任意磁盘】:将磁盘隐藏,保所隐私文件 【按颜色汇总】:按背景色对选区的数据 【解除密码保护】:删除工作表保护的密码,瞬间完成。适用于Excel 2002、2003、2007、2010 【显示经典菜单】:在Excel 2007或者2010中显示2003样式的菜单,方便初学Excel 2007或2010的用户查找菜单 【截取窗口对象】:将选定的窗口或者对象转换成图片文件,可截Excel界面和其它任意界面 【截取矩形对象】:将选定的矩形区域转换成图片文件 【截取任意区域】:将选定任意区域转换成图片文件 【删除空单元格】:删除选区的空单元格,后面的数据自动上升 【转置选区】:将选区行列调换 【按列倒置】:将选区的数据横向倒置 【按列倒置】:将选区的数据纵向倒置 【字母大小写转换】:将选区的单词、字母在大写小写、首字母大写之间转换 【中英翻译】:将选区进行中英互译,如果选择英文则转换成中文;如果选择中文则转换成英文 【小写金额转大写】:将小写金额批量转换成大写 【大写金额转小写】:将大写金额批量转换成小写 【区域数据加密】:对工作表选区的数据进行加密,转换成乱码,有密码才可以查看。 【简体转繁体】:将简体字批量转换成繁体 【繁体转简体】:将繁体字批量转换成简体 【将公式转换成值】:将指定工作表中指定区域的公式转换成值,可以自由选择工作表和单元格范围。 【根据工资计算钞票】:根据员工的工资计算需要多少张100元、50元......1元的钞票,可以批量计算。发现金工资的财务工作者必备 【隔行插入行】:对工作表隔行插入行,或者隔列插入列,其中行数可以自定义 【折分工作簿】:将指定工作簿的每个工作表拆分成单独的工作簿,新工作簿名称等于原工作表名称 【工作表折分】:将当前工作表的数据按条件拆分成多个工作表,可以用任意列的数据做为拆分条件 【并工作簿】:将指文件夹中所有工作簿中所有工作表数据并起来。有两种并方式:将每个工作簿中的工作表到当前工作簿是,表与表对应;将不同工作簿中同工作表的数据并到同一工作表中。差异在于同名工作表的处理 【文本与数值互换】:将选区的数字瞬间转换成文本;将选区的文本型数字瞬间转换成数值 【复选框工具】:批量生成复选框(方框中打勾的工具),批量选定、取消复选框。且可以定义复框是否可以打印、与单元格链接等等 【报表分栏工具箱】:Word有分栏功能,本工具使Excel也具有同类功能。当数据列数太少浪费打印纸张时,可以用本工具分成多栏再打印 【制作工资条】:瞬间将工资明细表生成工资条,方便打印并裁剪。可以自己定义工资条头的行数 【删除工资条恢复明细表】:删除前一工具生成的工资条头,恢复明细表 【建立分页小计】:将每页数据建立小计和累计,且自动分页,小计和累计在每页最末处 【删除分页小计】:删除小计与累计,恢复明细表 【并到选区】:将一个单元格的值到一个区域中去,可以插入到原字符之前也可以插入到原字符之后 【可还原的并居中】:并数据时可以保留所有数据,可以随心所欲定义分隔符。还可以随时取消并,还原所有数据 【并列中相同值】:对一列中相同且相邻的数据区域进行并居中 【取消并还原并数据】:对一列中并后的单元格取消并,且恢复并前所有数据 【并数据并复制】:可以将一个区域的数据直接复制到一个单元格中 【并区域自动换行】:可以让具有并单元格的区域在自动换行与不换行之间自由切换

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧