| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 87 人关注过本帖
标题:我用这命令时提示:函数名缺少)该如何解决,请大师帮忙
只看楼主 加入收藏
反璞归真
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2017-5-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
我用这命令时提示:函数名缺少)该如何解决,请大师帮忙
SELECT zxdm, SUM(CASE WHEN kmdm = '06' THEN 报名人数 ELSE 0 END) AS [化学],SUM(CASE WHEN kmdm = '07' THEN 报名人数 ELSE 0 END) AS [生物学],SUM(CASE WHEN kmdm = '08' THEN 报名人数 ELSE 0 END) AS [历史],SUM(CASE WHEN kmdm = '09' THEN 报名人数 ELSE 0 END) AS [地理],FROM your_table GROUP BY zxdm
搜索更多相关主题的帖子: SUM ELSE END THEN 报名 
12 小时前
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1117
专家分:2757
注 册:2015-12-30
收藏
得分:7 
AS [地理],FROM your_table

这里的逗号是多余的,改成空格

11 小时前
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:417
专家分:140
注 册:2015-4-18
收藏
得分:7 
感觉地理后面的逗号是多的,尝试下面是否可以;另如果上传数据测试会更准确
SELECT zxdm, ;
    SUM(CASE WHEN kmdm = '06' THEN 报名人数 ELSE 0 END) AS [化学],;
    SUM(CASE WHEN kmdm = '07' THEN 报名人数 ELSE 0 END) AS [生物学],;
    SUM(CASE WHEN kmdm = '08' THEN 报名人数 ELSE 0 END) AS [历史],;
    SUM(CASE WHEN kmdm = '09' THEN 报名人数 ELSE 0 END) AS [地理];
FROM your_table ;
GROUP BY zxdm
11 小时前
反璞归真
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2017-5-17
收藏
得分:0 
试了一下,地理后面的逗号去掉还提示:函数名缺少),请大师门帮忙解决一下,我实在找不到原因错在哪里
11 小时前
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:802
专家分:3212
注 册:2018-3-13
收藏
得分:7 
看到  AS [化学] 写法,估计是习惯了 T-SQL 的语法习惯,通常在 vfp 中不需要这样扩起来,不过问题不在这
vfp 不支持 case when ... end 语法,若代码确实是用在 vfp 客户端,用 Icase 替换吧

SELECT zxdm ;
    , SUM(ICASE(kmdm = '06', 报名人数, 0)) AS [化学] ;
    , SUM(ICASE(kmdm = '07', 报名人数, 0)) AS [生物学] ;
...



[此贴子已经被作者于2025-10-10 10:46编辑过]


这家伙很懒,啥也没留下
11 小时前
反璞归真
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2017-5-17
收藏
得分:0 
以下是引用csyx在2025-10-10 10:44:24的发言:

看到  AS [化学] 写法,估计是习惯了 T-SQL 的语法习惯,通常在 vfp 中不需要这样扩起来,不过问题不在这
vfp 不支持 case when ... end 语法,若代码确实是用在 vfp 客户端,用 Icase 替换吧

SELECT zxdm ;
    , SUM(ICASE(kmdm = '06', 报名人数, 0)) AS [化学] ;
    , SUM(ICASE(kmdm = '07', 报名人数, 0)) AS [生物学] ;
...
谢谢指导,问题已解决,再次感谢
10 小时前
chychychy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:417
专家分:140
注 册:2015-4-18
收藏
得分:0 
我用数据测试了一下可以这样,kldm为文本型数据
SELECT bmddm ;
    ,SUM(IIF(kldm='1',1,0)) AS 普通类 ;
    ,SUM(IIF(kldm='3',1,0)) AS 艺术类 ;
    ,SUM(IIF(kldm='4',1,0)) AS 体育类 ;
FROM 原始数据 ;
GROUP BY bmddm
7 小时前
快速回复:我用这命令时提示:函数名缺少)该如何解决,请大师帮忙
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017119 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved