弄了半天没弄出来,求汇总sql语句的写法,

qiule 2018-08-20 11:00:48
数据如下
no、school(学校), grade(学期), stuName(学生), shouldPay(应交学费)
1 龙山 第1学期 zs1 2000
2 龙山 第1学期 zs2 2000
3 龙山 第1学期 zs3 2000
4 龙山 第1学期 zs4 2000

5 龙山 第2学期 zs5 3000
6 龙山 第2学期 zs6 3000
7 龙山 第2学期 zs7 3000
8 龙山 第2学期 zs8 3000
9 龙山 第2学期 zs9 3000

用一条sql语句统计出应交费的总额
就是第1学期 2000*4(人) + 3000*5(人)
结果为 23000
谢谢大家
...全文
277 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2018-08-21
  • 打赏
  • 举报
回复
如果只是算学费总额的话,直接这样就可以了
Select school,SUM(shouldPay) AS shouldPay from #T GROUP BY school


如果是楼主想要的“就是第1学期 2000*4(人) + 3000*5(人)”
这样的表结构可以去掉shouldpay这个冗余字段,加一个学期学费表
学校 学期 学费
龙山 1 2000
龙山 2 3000

吉普赛的歌 2018-08-20
  • 打赏
  • 举报
回复
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
[no] int primary key,
school NVARCHAR(10),
grade NVARCHAR(10),
stuName NVARCHAR(10),
shouldPay INT
)
GO
SET NOCOUNT ON
INSERT INTO t
SELECT 1,'龙山','第1学期','zs1',2000
UNION ALL SELECT 2,'龙山','第1学期','zs2',2000
UNION ALL SELECT 3,'龙山','第1学期','zs3',2000
UNION ALL SELECT 4,'龙山','第1学期','zs4',2000
UNION ALL SELECT 5,'龙山','第2学期','zs5',3000
UNION ALL SELECT 6,'龙山','第2学期','zs6',3000
UNION ALL SELECT 7,'龙山','第2学期','zs7',3000
UNION ALL SELECT 8,'龙山','第2学期','zs8',3000
UNION ALL SELECT 9,'龙山','第2学期','zs9',3000
GO
--按学校和学期汇总
SELECT
school AS [学校]
,grade [学期]
,SUM(shouldPay) AS [应交学费]
FROM t
GROUP BY school,grade
/*
学校 学期 应交学费
---------- ---------- -----------
龙山 第1学期 8000
龙山 第2学期 15000
*/

--只按学校汇总,不管学期(所有学期)
SELECT
school AS [学校]
,SUM(shouldPay) AS [应交学费]
FROM t
GROUP BY school
/*
学校 应交学费
---------- -----------
龙山 23000
*/
weixin_41779699 2018-08-20
  • 打赏
  • 举报
回复
3000*5(人) 不是第二学期的吗
RINK_1 2018-08-20
  • 打赏
  • 举报
回复
select sum(shouldPay) from table where grade='第1学期'

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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