Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

关于sql语句查询的三个问题

crlchina  发表于:2010-09-30 22:13:29  
复制

这个语句 有点复杂  麻烦大家下 要是图片看不表 我也发附件了 格式为excel点击下载此附件

 

Top
殷小宝  发表于:2010-09-30 23:04:52

汇总那列我做不出来,其它做出来不知对否?

select 学校,班级,COUNT(姓名)AS 人数,SUM(数学)AS 数学,SUM(语文) AS 语文,

SUM(英语) AS 英语,SUM(人数) AS 人数,SUM(SUM(数学)) AS 数学,SUM(SUM(语文)) AS 语文,SUM(SUM(英语)) AS 英语 From 表1 Group By 学校,班级,人数,数学,英语 Order By 班级.

另外,不知道聚合函数里参数能不能用别名?



crlchina 发表于:2010-10-01 07:59:05
呵呵  谢谢 汇总那部分 谁知道啊

煮江品茶 发表于:2010-10-01 09:11:33

SELECT 成绩表.学校, 成绩表.班级, Count(成绩表.姓名) AS 人数, Sum(成绩表.数学) AS 数学, Sum(成绩表.语文) AS 语文, Sum(成绩表.英语) AS 英语
FROM 成绩表
GROUP BY 成绩表.学校, 成绩表.班级
UNION All SELECT 成绩表.学校 & "合计" as 学校, "" AS 班级, Count(成绩表.姓名) AS 人数, Sum(成绩表.数学) AS 数学, Sum(成绩表.语文) AS 语文, Sum(成绩表.英语) AS 英语
FROM 成绩表
GROUP BY 成绩表.学校
UNION ALL SELECT "学校总计" AS 学校, "" AS 班级, Count(成绩表.姓名) AS 人数, Sum(成绩表.数学) AS 数学, Sum(成绩表.语文) AS 语文, Sum(成绩表.英语) AS 英语
FROM 成绩表
ORDER BY 学校, 班级;

 

点击下载此附件

crlchina 发表于:2010-10-01 12:21:25

谢谢了!

再问个问题 就是 联合查询在vba中的语句 的写法

比如说:

Private Sub 查询_Click()
Dim strSQL As String
Dim chaxun As QueryDef
strSQL = "SELECT 成绩表.学校, 成绩表.班级, Count(成绩表.姓名) AS 人数, Sum(成绩表.数学) AS 数学, Sum(成绩表.语文) AS 语文, Sum(成绩表.英语) AS 英语 FROM 成绩表 GROUP BY 成绩表.学校, 成绩表.班级
UNION All SELECT 成绩表.学校 & "合计" as 学校, "" AS 班级, Count(成绩表.姓名) AS 人数, Sum(成绩表.数学) AS 数学, Sum(成绩表.语文) AS 语文, Sum(成绩表.英语) AS 英语
FROM 成绩表
GROUP BY 成绩表.学校
UNION ALL SELECT "学校总计" AS 学校, "" AS 班级, Count(成绩表.姓名) AS 人数, Sum(成绩表.数学) AS 数学, Sum(成绩表.语文) AS 语文, Sum(成绩表.英语) AS 英语
FROM 成绩表
ORDER BY 学校, 班级;"
Set chaxun = CurrentDb.CreateQueryDef("linshi-jichu", strSQL)
DoCmd.OpenQuery chaxun.Name

-------------------------------------------------------

上面的语句运行的时候 是错的  但改成 下面这句 可以运行

strSQL = "SELECT 成绩表.学校, 成绩表.班级, Count(成绩表.姓名) AS 人数, Sum(成绩表.数学) AS 数学, Sum(成绩表.语文) AS 语文, Sum(成绩表.英语) AS 英语 FROM 成绩表 GROUP BY 成绩表.学校, 成绩表.班级"

--------------------------------------------------------

直接写成 最上面的代码段 不能运行 想请问下 最上面那部分的联合查询段代码应该怎么写!

不胜感激!


 



煮江品茶 发表于:2010-10-01 13:19:59

双引号要改为单引号:

ssql="SELECT 学校, 班级, Count(姓名) AS 人数, Sum(数学) AS 数学, Sum(语文) AS 语文, Sum(英语) AS 英语 "
ssql=ssql & "FROM 成绩表 GROUP BY 学校, 班级 "
ssql=ssql & "UNION All SELECT 学校 & '合计' as 学校, '' AS 班级, Count(姓名) AS 人数, Sum(数学) AS 数学, Sum(语文) AS 语文, Sum(英语) AS 英语 "
ssql=ssql & "FROM 成绩表 GROUP BY 学校 "
ssql=ssql & "UNION ALL SELECT '学校总计' AS 学校, '' AS 班级, Count(姓名) AS 人数, Sum(数学) AS 数学, Sum(语文) AS 语文, Sum(英语) AS 英语 "
ssql=ssql & "FROM 成绩表 "
ssql=ssql & "ORDER BY 学校, 班级;"



crlchina 发表于:2010-10-01 13:33:55

啊 谢谢了!

非常感谢



总记录:6篇  页次:1/1 9 1 :