| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1940 人关注过本帖
标题:高手帮忙看看这个视图查询语句有什么问题,总是提示最后那个 (GROUP BY 参 ...
只看楼主 加入收藏
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:15 
高手帮忙看看这个视图查询语句有什么问题,总是提示最后那个 (GROUP BY 参赛单位.单位编码 )语句有错误
SELECT 参赛单位.单位编码, 参赛单位.单位名称,;
  sum(iif(个人得分.性别="男",个人得分.得分,0)) as 男子组总分,;sum(iif(个人得分.性别="女",个人得分.得分,0)) as 女子组总分;;
 FROM ;
     运动会!运动员 ;
    INNER JOIN 运动会!个人得分 ;
   ON  运动员.运动员号码 = 个人得分.运动员号码 ;
    INNER JOIN 运动会!参赛单位 ;
   ON  参赛单位.单位编码 = 运动员.单位编码;
 GROUP BY 参赛单位.单位编码
搜索更多相关主题的帖子: GROUP 单位 语句 运动 编码 
2020-10-19 18:35
schtg
Rank: 12Rank: 12Rank: 12
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1544
专家分:3003
注 册:2012-2-29
收藏
得分:4 
GROUP BY 再加上:参赛单位.单位名称  后试一试。
2020-10-19 19:19
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 2楼 schtg
SELECT 参赛单位.*,;
  sum(iif(个人得分.性别="男",个人得分.得分,0)) as 男子组总分,;sum(iif(个人得分.性别="女",个人得分.得分,0)) as 女子组总分;
 FROM ;
     运动会!参赛单位 ;
    LEFT OUTER JOIN 运动会!运动员 ;
   ON  参赛单位.单位编码 = 运动员.单位编码 ;
    INNER JOIN 运动会!个人得分 ;
   ON  运动员.运动员号码 = 个人得分.运动员号码;
 GROUP BY 参赛单位.单位编码, 参赛单位.单位名称

又提示命令中含有不能识别的短语或者关键字
2020-10-19 19:35
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:4 
用到分组的查询,有个这样的规定
select 字段1,字段2,字段3,分组1 from 你表 ;
group by 分组1
其中,字段1,字段2,字段3
必须是:
1.用到聚合函数,如max(),min(),sum(),avg()
2.在分组语句中,如 group by 分组1

参照这个规则,你看看
SELECT 参赛单位.单位编码, 参赛单位.单位名称,
SELECT 参赛单位.*

2020-10-20 08:36
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10537
专家分:42927
注 册:2014-5-20
收藏
得分:4 
给点数据测试就清楚
2020-10-20 09:08
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:763
专家分:2503
注 册:2011-5-8
收藏
得分:4 
回复 3楼 hszxgb
命令太长了,VFP命令字符长度不能过254,试试下面的写法
SELECT 参赛单位.* a,;
 sum(iif(个人得分.性别="男",个人得分.得分,0)) as 男子组总分,;sum(iif(个人得分.性别="女",个人得分.得分,0)) as 女子组总分;
 FROM ;
 运动会!a ;
 LEFT OUTER JOIN 运动会!运动员 b;
 ON a.单位编码 = b.单位编码 ;
 INNER JOIN 运动会!个人得分 c;
 ON b.运动员号码 = c.运动员号码;
 GROUP BY a.单位编码, a.单位名称


[此贴子已经被作者于2020-10-20 11:40编辑过]


dBase有人接盘了。
2020-10-20 11:37
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
*!*    VFP9.0,用到分组 Group by 时
*!*    select 字段1,字段2,字段3,字段4 中的“字段1,字段2,字段3,字段4”必须要用在聚合函数中,或者包含在分组条件中
*!*    列如:
*!*    表1(学号,姓名,科目,成绩,班级)
CREATE CURSOR 表1(学号 C(10),姓名 C(10),科目 C(10),成绩 N(4,1),班级 C(10))
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1001', '张三', '数学', 90, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1001', '张三', '语文', 85, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1001', '张三', '英语', 87, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1002', '李四', '数学', 85, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1002', '李四', '语文', 78, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1002', '李四', '英语', 92, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1003', '王五', '数学', 91, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1003', '王五', '语文', 88, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1003', '王五', '英语', 79, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1004', '赵六', '数学', 92, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1004', '赵六', '语文', 87, '高三(1)')
INSERT INTO 表1(学号,姓名,科目,成绩,班级) VALUES('XH1004', '赵六', '英语', 87, '高三(1)')

*!*    1.求,每个人的最高分

select 学号,姓名,科目,max(成绩) as 最高分,班级 from 表1 group by 学号
*!*    上面的是错误的,因为“姓名,科目,班级”不在聚合函数中,同时,也没有在分组

*!*    正确的是
select 学号,max(成绩) as 最高分 from 表1 group by 学号
*!*    XH1001 90
*!*    XH1002 92
*!*    XH1003 91
*!*    XH1004 92

*!*    但如果要显示“学号,姓名,科目,成绩,班级”,怎么写
*!*    不考虑存在有相同科目分数情况
select t1.学号,t2.姓名,t2.科目,t2.班级,t1.最高分 from (select 学号,MAX(成绩) 最高分 FROM 表1 GROUP BY 学号) as t1 ;
left join 表1 as t2 on t1.学号=t2.学号 AND t2.成绩=t1.最高分

2020-10-20 13:17
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:4 
set engi 70

只求每天有一丁点儿的进步就可以了
2020-10-20 14:03
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 6楼 xuminxz
这样子也提示命令中有不能识别的短语或者关键字
2020-10-21 08:12
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 4楼 mywisdom88
SELECT 参赛单位.单位编码, 参赛单位.单位名称,;
  sum(iif(个人得分.性别="男",个人得分.得分,0)) as 男子组总分,;sum(iif(个人得分.性别="女",个人得分.得分,0)) as 女子组总分;
 FROM ;
     运动会!参赛单位 ;
    LEFT OUTER JOIN 运动会!运动员 ;
   ON  参赛单位.单位编码 = 运动员.单位编码 ;
    INNER JOIN 运动会!个人得分 ;
   ON  运动员.运动员号码 = 个人得分.运动员号码;
 GROUP BY 参赛单位.单位编码, 参赛单位.单位名称

这样子提示命令中有不能识别的短语或关键字!!!这是什么原因啊
2020-10-21 08:53
快速回复:高手帮忙看看这个视图查询语句有什么问题,总是提示最后那个 (GROUP ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019956 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved