日统计输出

baisun 2004-11-20 07:38:02
表内容:
Sdate F1 F2 Name1
20041101 5 7 a
20041101 2 3 b
20041101 33 4 c
20041101 1 8 d
20041102 12 1 a
... ...
现在想实现显示:
20041101日统计
5 7 a
2 3 b
33 4 c
1 8 d
41 22 总计
20041102日统计
... ...
日统计,怎么做?
...全文
233 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-12-22
  • 打赏
  • 举报
回复

select F1=sum(F1),F2=sum(F2)
,Name1=case grouping(Name1) when 1 then '总计' else Name1 end
from 表 where Sdate='20041101'
group by Name1 with rollup
zhang_yzy 2004-11-27
  • 打赏
  • 举报
回复
select Sdate,F1,F2,Name1
from (select Sdate,sum(F1),sum(F2),Name1
from table
group by sdate,name1
union all
select Sdate,Sum(F1),sum(F2),'总计' as name1
from table
group by sdate ) a
order by sdate

chop_chop 2004-11-27
  • 打赏
  • 举报
回复
樓主講清楚意思先!
vinsonshen 2004-11-27
  • 打赏
  • 举报
回复
你自己试试是否合适你需求吧
vinsonshen 2004-11-27
  • 打赏
  • 举报
回复
以上表##test为你的部分数据:
create table ##test(Sdate varchar(20),F1 int, F2 int, Name1 varchar(10))

insert ##test
select '20041101','5' , '7', 'a'
union all select '20041101', '2', '3', 'b'
union all select '20041101', '33', '4', 'c'
union all select '20041101', '1', '8', 'd'
union all select '20041102', '12', '1', 'a'
vinsonshen 2004-11-27
  • 打赏
  • 举报
回复
若你的总计意思为 sum(f1)+sum(f2)总和的话,则用下面这个:
select * from(
select * from ##test
union all
select sdate,sum(f1),sum(f2),cast(sum(f1)+sum(f2) as varchar) as 总计 from ##test group by sdate) a order by a.sdate
----结果
20041101 5 7 a
20041101 2 3 b
20041101 33 4 c
20041101 1 8 d
20041101 41 22 63
20041102 12 1 a
20041102 12 1 13
--=============================================
若你的总计意思只是在name1列显示文字“总计”的话,则用这个:
select * from(
select * from ##test
union all
select sdate,sum(f1),sum(f2), '总计' from ##test group by sdate) a order by a.sdate
--结果:
20041101 5 7 a
20041101 2 3 b
20041101 33 4 c
20041101 1 8 d
20041101 41 22 总计
20041102 12 1 a
20041102 12 1 总计
ORARichard 2004-11-21
  • 打赏
  • 举报
回复
楼主要的显示结果是个报表形式,用一个语句是写不出这个效果的,你可以用报表设计去做。
poppop_2000 2004-11-21
  • 打赏
  • 举报
回复
SELECT Sdate, F1, F2
FROM 表
GROUP BY Sdate WITH CUBE
fenlin 2004-11-21
  • 打赏
  • 举报
回复
SELECT Sdate, F1, F2
FROM 表
ORDER BY Sdate
COMPUTE SUM(F1), SUM(F2) BY Sdate
$扫地僧$ 2004-11-20
  • 打赏
  • 举报
回复
select sum(F1) as F1,sum(F2) as F2,CASE GROUPING(Name1)
when 0 then Name1
when 1 then '总计'
end as Name1
from tableName
group by Name1
with Rollup
DebugXP 2004-11-20
  • 打赏
  • 举报
回复
select F1,F2,Name1 from 表
union all
select sum(f1),sum(F2),'总计' from 表

baisun 2004-11-20
  • 打赏
  • 举报
回复
难道非要要在程序里根据天数写出N个循环(一次输出一天的记录及总计)?
ljial 2004-11-20
  • 打赏
  • 举报
回复
select F1,F2,Name1 from 表
compute F1,F2 by sdate
vinsonshen 2004-11-20
  • 打赏
  • 举报
回复
select Sdate,sum(F1) as F1总计,Sum(F2) F2总计, sum(F1)+sum(F2) as 总统计 from 表 group by Sdate
baisun 2004-11-20
  • 打赏
  • 举报
回复
我现在需要的是分天分别统计。。。
nmgtaozi 2004-11-20
  • 打赏
  • 举报
回复
select sum(f1),sum(f2),titleName='统计' from tableName group by sdate
hangsome 2004-11-20
  • 打赏
  • 举报
回复
用Group 应该可以吧

34,576

社区成员

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

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