Foxtable(狐表)用户栏目专家坐堂 → sql group by咨询


  共有7050人关注过本帖树形打印复制链接

主题:sql group by咨询

帅哥哟,离线,有人找我吗?
guosheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
sql group by咨询  发帖心情 Post By:2022/7/20 13:02:00 [显示全部帖子]

做两个表left join后填充table控件时,把as b加上 就报错(让检查数据源 或 语法错误)。怎么回事啊?
Tables("测试支付_Table1").Fill("(S  elect [合同编号],s um(本次金额) FROM {合同明细表} GROUP BY 合同编号) as b","cs2",True)



[此贴子已经被作者于2022/7/20 13:08:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2022/7/20 13:42:00 [显示全部帖子]

Tables("测试支付_Table1").Fill("S elect a.[合同编号],b.[jel]  F ROM {明细表a} As a left join (S elect [合同编号],[经手人],S UM(金额) as jel from {明细表b} group by 合同编号) As b  on a.[合同编号]=b.[合同编号]","cs2",True)

我是要连接两个表后,填充一个表啊。以上也是报同样的错,语法错或数据源错,怎么回事啊。


 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2022/7/20 14:20:00 [显示全部帖子]

连接明细表b中一个字段是运行没问题了。

明细表a和b中 要根据两个字段([合同编号],[序号])进行连接,group by也根据两个字段进行(合同编号 ,序号),明细表b中取两个字段(SUM(金额) 和SUM(数量) ),该怎么改啊?多谢了
Select a.[合同编号],a.[序号],b.[jel],b[sl]  FROM {明细表a} As a left join (Select [合同编号],[序号],SUM(金额) as jel,SUM(数量) as sl from {明细表b} group by 合同编号 ,序号) As b  on (a.[合同编号]=b.[合同编号] and a.[序号]=b.[序号]) 

[此贴子已经被作者于2022/7/20 14:20:59编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2022/7/20 14:53:00 [显示全部帖子]

若s um的结果为空,如果将它设置为0啊?I SNULL测了没有赋值成功啊

S elect [合同编号],[序号],[经手人], I SNULL(sum(金额),0) as 金额 f rom  ……

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2022/7/20 15:26:00 [显示全部帖子]

IIF(sum(金额) is null,0,sum(金额))   提示语法错误,是用法错了吗

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2022/7/20 16:02:00 [显示全部帖子]

sqlserver的

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2022/7/20 16:30:00 [显示全部帖子]

不加iif的判断,代码运行没问题;加上IIF后就报错(提示 语法错误),就是Table1中显示的还是为空,不是0。

Tables("提佣支付_Table1").Fill("S elec t a.[合同编号],c.[客户名称],a.[申请笔数],a.[申请金额],b.[已支付额],c.[经手人]  F ROM {租赁合同佣金提取明细表} As a left join (selec t 合同编号,客户名称,经手人 f rom {租赁合同佣金提取情况表}) as c on (a.[合同编号]=c.[合同编号]) l eft join (S elec t [合同编号],[申请笔数],IIF(sum(本次支付金额) is null,0,sum(本次支付金额)) as 已支付额 from {租赁合同提佣发放明细表} g roup by 合同编号,申请笔数) As b on (a.[合同编号]=b.[合同编号] and a.[申请笔数]=b.[申请笔数]) w here (b.[已支付额] is null or a.[申请金额] > b.[已支付额]) ","cs2",True)

[此贴子已经被作者于2022/7/20 16:31:14编辑过]

 回到顶部