求SQL语句一条!

wumylove1234 2004-03-17 02:14:30
select 部门名称 as 合计,sum(已交金额),sum(未交金额)
from
(SELECT
A.BMMC AS 部门名称,
sum(case when B.bmbh is null or B.jk=0 then 0 else B.je end) as 已交金额,
sum(case when B.BMBH is null or b.jk=1 then 0 else B.je end) as 未交金额
FROM 部门表 A left JOIN 工作证书表 B
ON A.BMBH = B.BMBH and (B.jdrq between '2004-03-01' and '2004-03-18')
group by A.bmbh,A.bmmc,A.bmlb having A.bmlb='A' )
这条语句有语法问题!

初学SQL,想实现对子查询的结果生成汇总行.注意,是行,不是列!

如果生成汇总行可以实现,那怎么样才能做到即有分类汇总的数据,又有对分类汇总再进行汇总(即生成合计)的记录集?

...全文
40 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumylove1234 2004-03-17
  • 打赏
  • 举报
回复
compute这个语句不知能否达到我的要求!不会用,所以没有试验!
wumylove1234 2004-03-17
  • 打赏
  • 举报
回复
哇,朋友回帖好快啊.
你的那种方法我试过了.因为我的父查询中用汇总函数,所以要求有group by,但对部门名称分类汇总的话?那还有什么意义啦?跟子查询是一样的.
wumylove1234 2004-03-17
  • 打赏
  • 举报
回复
刚才试了一下,改成这样:
select 部门名称 as 合计,sum(已交金额),sum(未交金额)
from
(SELECT
A.BMMC AS 部门名称,
sum(case when B.bmbh is null or B.jk=0 then 0 else B.je end) as 已交金额,
sum(case when B.BMBH is null or b.jk=1 then 0 else B.je end) as 未交金额
FROM 部门表 A left JOIN 工作证书表 B
ON A.BMBH = B.BMBH and (B.jdrq between '2004-03-01' and '2004-03-18')
group by A.bmbh,A.bmmc,A.bmlb) as tmptable
group by 部门名称,已交金额,未交金额

生成的是按部门分类汇总的,呵呵,晕了.直接就是子查询的结果.
pigsanddogs 2004-03-17
  • 打赏
  • 举报
回复

select 部门名称 as 合计,sum(已交金额),sum(未交金额)
from
(SELECT
A.BMMC AS 部门名称,
sum(case when B.bmbh is null or B.jk=0 then 0 else B.je end) as 已交金额,
sum(case when B.BMBH is null or b.jk=1 then 0 else B.je end) as 未交金额
FROM 部门表 A left JOIN 工作证书表 B
ON A.BMBH = B.BMBH and (B.jdrq between '2004-03-01' and '2004-03-18')
group by A.bmbh,A.bmmc,A.bmlb having A.bmlb='A' ) as a

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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