Foxtable(狐表)用户栏目专家坐堂 → [求助]筛选条件二选一


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

主题:[求助]筛选条件二选一

帅哥,在线噢!
lgj716330
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]筛选条件二选一  发帖心情 Post By:2019/12/28 13:34:00 [显示全部帖子]

Dim b6 As New SQLGroupTableBuilder("统计表","表A")
b6.Groups.AddDef("类型") 
b6.Groups.AddDef("名称") 
b6.Groups.AddDef("季度") 
b6.Groups.AddDef("性质") 
b6.Totals.AddDef("金额") 
b6.Filter = "" 

b6.Build 

相同的"类型|名称|季度"对应的“性质”有“预估”和“实际”
想实现,如果存在“实际”,就取实际的数据,如果没有“实际”,就取“预估”的数据,如图,上面标色的筛选条件要怎么写

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/12/28 13:34:35编辑过]

 回到顶部
帅哥,在线噢!
lgj716330
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/12/28 16:08:00 [显示全部帖子]

Se/ect 类型,名称,年份,季度,iif(实际=-1,'预估','实际') as 性质, iif(实际=-1,预估,实际) as 金额 from (se/ect 类型,名称,年份,季度,Sum(iif(性质 = '实际',金额,-1)) As 实际,Sum(iif(性质 = '预估',金额,-1)) As 预估 from {表A} Group by 类型,名称,年份,季度) as A

无法完成延迟准备。
无法预定义语句。
'=' 附近有语法错误。
'=' 附近有语法错误。

 回到顶部
帅哥,在线噢!
lgj716330
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/12/28 17:36:00 [显示全部帖子]

Se/ect 类型,名称,年份,季度,(case when 实际=-1 then '预估' else '实际' end) as 性质, (case when 实际=-1 then 预估 else 实际 end) as 金额 from (se/ect 类型,名称,年份,季度,Sum(case when 性质 = '实际' then 金额 else -1 end) As 实际,Sum(case when 性质 = '预估' then 金额 else -1 end) As 预估 from 表A Group by 类型,名称,年份,季度) as A

取实际数据的时候,金额会被减掉“预估”的记录数,比如金额是200,“预估”记录有7条,取过来的结果是193,哪里还需要调整

 回到顶部
帅哥,在线噢!
lgj716330
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/12/28 19:00:00 [显示全部帖子]

嗯,-1改成0,好象可以了

 回到顶部
帅哥,在线噢!
lgj716330
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/1/16 10:29:00 [显示全部帖子]

Dim sql As String = "Se/ect 编号,部门,类型,名称,年份,季度,(case when 实际=0 then '预估' else '实际' end) as 性质, (case when 实际=0 then 预估 else 实际 end) as 成本金额 from (se/ect 编号,部门,类型,名称,年份,季度,Sum(case when 性质 = '实际' then 成本金额 else 0 end) As 实际,Sum(case when 性质 = '预估' then 成本金额 else 0 end) As 预估,Sum(case when 性质 = '实际' then 目标成本 else 0 end) As 实际,Sum(case when 性质 = '预估' then 目标成本 else 0 end) As 预估 from 汇总三 Group by 编号,部门,类型,名称,年份,季度) as A" 


以上只有成本金额时没问题,加了目标成本即标颜色部分后,就生成不了,要怎么改下,SQL不太懂


 回到顶部
帅哥,在线噢!
lgj716330
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/1/16 11:38:00 [显示全部帖子]

上面的也没生成,改成下面,也是没用
Dim sql As String = "Se/ect 编号,部门,类型,名称,年份,季度,(case when 实际=0 then '预估' else '实际' end) as 性质,(case when 实际=0 then 预估 else 实际 end) as 成本金额 from (se/ect 编号,部门,类型,名称,年份,季度,Sum(case when 性质 = '实际' then 成本金额 else 0 end) As 实际,Sum(case when 性质 = '预估' then 成本金额 else 0 end) As 预估 from 汇总三 Group by 编号,部门,类型,名称,年份,季度) as A,(case when 实际=0 then 预估 else 实际 end) as 目标成本 from (se/ect 编号,部门,类型,名称,年份,季度,Sum(case when 性质 = '实际' then 目标成本 else 0 end) As 目标实际,Sum(case when 性质 = '预估' then 目标成本 else 0 end) As 目标预估 from 汇总三 Group by 编号,部门,类型,名称,年份,季度) as B"



 回到顶部
帅哥,在线噢!
lgj716330
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/1/16 11:58:00 [显示全部帖子]

Dim bb6 As New GroupTableBuilder("汇总",sql, "ABC") 
bb6.Groups.AddDef("编号")
bb6.Groups.AddDef("部门")
bb6.Groups.AddDef("类型")
bb6.Groups.AddDef("名称")
bb6.Groups.AddDef("年份")
bb6.Groups.AddDef("季度")
bb6.Groups.AddDef("性质")
bb6.Totals.AddDef("成本金额") 

bb6.Build()

把后面部分去掉是没问题的,加上后面部分,然后按下面这样,就出不来
Dim bb6 As New GroupTableBuilder("汇总",sql, "ABC") 
bb6.Groups.AddDef("编号")
bb6.Groups.AddDef("部门")
bb6.Groups.AddDef("类型")
bb6.Groups.AddDef("名称")
bb6.Groups.AddDef("年份")
bb6.Groups.AddDef("季度")
bb6.Groups.AddDef("性质")
bb6.Totals.AddDef("成本金额") 
bb6.Totals.AddDef("目标成本") 
bb6.Build()

 回到顶部
帅哥,在线噢!
lgj716330
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/1/16 12:18:00 [显示全部帖子]

汇总四生成不了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目10.foxdb



 回到顶部
帅哥,在线噢!
lgj716330
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/1/16 14:10:00 [显示全部帖子]

就是性质里面有预估和实际两种情况,同一月份如果即有预估又有实际,就取实际的数据,如果没有实际就取预估的数据,直接弄不了。看1楼、2楼

Totals.AddDef只有一个时,没有问题,两个就生成不了
[此贴子已经被作者于2020/1/16 14:30:46编辑过]

 回到顶部