报表sql语句出错

select m.销售部门,m.销售名字,k.计算日期,m.月收入贡献指标*10000 as 月收入贡献指标,m.特殊加减项,m.销售工资,m.佣金加减项,m.考核系数,m.折标后存续规模,sum(k.销量)as 销量,sum(k.一次性收入贡献)as 一次性收入,sum(k.一次性代算净收入贡献)as 一次性代算净收入, sum(k.分阶段收入贡献)as 分阶段收入,sum(k.分阶段代算净收入贡献)as 分阶段代算净收入, sum(k.一次性认购费)as 一次性认购费,sum(k.分阶段认购费)as 分阶段认购费

from (

select 

a.ddfwjlbmeng as 部门

,a.ddfwjl as 订单服务经理

,case when a.dkjedw=1 then a.dkje*a.hl/10000 else  a.dkje*a.hl end as 销量

,a.srgx as 一次性收入贡献

,a.dssrgx as 一次性代算净收入贡献

,a.rgf as 一次性认购费

,left(a.jsrq,7) as 计算日期

from uf_ddgl a where a.jsfs = '1' and a.ddzt in ('2','3') and a.ddssgs not in('17','5')

and left(a.jsrq,7)>='${ksrq}' and left(a.jsrq,7)<='${jsrq}' 

union all

select 

a.ddfwjlbmeng as 部门

,a.ddfwjl as 订单服务经理

,case when a.dkjedw=1 then b.cxje*b.hl/10000 else  b.cxje*b.hl end  as 销量

,b.srgx as 分阶段收入贡献

,b.dssrgx as 分阶段代算净收入贡献

,b.rgf as 分阶段认购费

,left(b.jxrq,7) as 计算日期

from uf_ddgl a 

left join uf_ddgl_dt1 b on b.mainid=a.id  

where a.jsfs = '0'  and a.ddzt in ('2','3') and a.ddssgs not in('17','5')

and left(b.jxrq,7)>='${ksrq}' and left(b.jxrq,7)<='${jsrq}' 

 ) k 

right join (select xsname as 销售名字

,ygzb as 月收入贡献指标

,tsxm as 特殊加减项

,xsgz as 销售工资

,yjxm as 佣金加减项

,kkxs as 考核系数

,zbgm as 折标后存续规模

,xsbm as 销售部门

from uf_xsyjzb 

where  left(ksdate,7)='${ksrq}' and left(jsdate,7)='${jsrq}')M on m.销售名字=k.订单服务经理

group by m.销售部门,m.销售名字,k.计算日期,m.月收入贡献指标,m.特殊加减项,m.销售工资,m.佣金加减项,m.考核系数,m.折标后存续规模

以上的SQL语句,提交后一直报错“正常:错误代码:1301 数据集配置错误 Query: 列名 '分阶段收入贡献' 无效。”请帮忙查看一下

FineReport baibian 发布于 2024-12-9 16:08
1min目标场景问卷 立即参与
回答问题
悬赏:38 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
1
用户k6280494Lv6专家互助
发布于2024-12-9 16:15(编辑于 2024-12-10 08:55)

SELECT

m.销售部门,

m.销售名字,

k.计算日期,

m.月收入贡献指标 * 10000 AS 月收入贡献指标,

m.特殊加减项,

m.销售工资,

m.佣金加减项,

m.考核系数,

m.折标后存续规模,

SUM ( k.销量 ) AS 销量,

SUM ( k.一次性收入贡献 ) AS 一次性收入,

SUM ( k.一次性代算净收入贡献 ) AS 一次性代算净收入,

SUM ( k.分阶段收入贡献 ) AS 分阶段收入,

SUM ( k.分阶段代算净收入贡献 ) AS 分阶段代算净收入,

SUM ( k.一次性认购费 ) AS 一次性认购费,

SUM ( k.分阶段认购费 ) AS 分阶段认购费 

FROM

(

SELECT

a.ddfwjlbmeng AS 部门

,

a.ddfwjl AS 订单服务经理

,

CASE

WHEN a.dkjedw= 1 THEN

a.dkje* a.hl/ 10000 ELSE a.dkje* a.hl 

END AS 销量

,

a.srgx AS 一次性收入贡献

,

a.dssrgx AS 一次性代算净收入贡献

,

a.rgf AS 一次性认购费

,

LEFT ( a.jsrq, 7 ) AS 计算日期 

,

,'' 分阶段收入贡献

FROM

uf_ddgl a 

WHERE

a.jsfs = '1' 

AND a.ddzt IN ( '2', '3' ) 

AND a.ddssgs NOT IN ( '17', '5' ) 

AND LEFT ( a.jsrq, 7 ) >= '${ksrq}' 

AND LEFT ( a.jsrq, 7 ) <= '${jsrq}' 

UNION ALL

SELECT

a.ddfwjlbmeng AS 部门

,

a.ddfwjl AS 订单服务经理

,

CASE

WHEN a.dkjedw= 1 THEN

b.cxje* b.hl/ 10000 ELSE b.cxje* b.hl 

END AS 销量

,

b.srgx AS 分阶段收入贡献

,

b.dssrgx AS 分阶段代算净收入贡献

,

b.rgf AS 分阶段认购费

,

LEFT ( b.jxrq, 7 ) AS 计算日期 

FROM

uf_ddgl a

LEFT JOIN uf_ddgl_dt1 b ON b.mainid= a.id 

WHERE

a.jsfs = '0' 

AND a.ddzt IN ( '2', '3' ) 

AND a.ddssgs NOT IN ( '17', '5' ) 

AND LEFT ( b.jxrq, 7 ) >= '${ksrq}' 

AND LEFT ( b.jxrq, 7 ) <= '${jsrq}'

) k

RIGHT JOIN (

SELECT

xsname AS 销售名字

,

ygzb AS 月收入贡献指标

,

tsxm AS 特殊加减项

,

xsgz AS 销售工资

,

yjxm AS 佣金加减项

,

kkxs AS 考核系数

,

zbgm AS 折标后存续规模

,

xsbm AS 销售部门 

FROM

uf_xsyjzb 

WHERE

LEFT ( ksdate, 7 ) = '${ksrq}' 

AND LEFT ( jsdate, 7 ) = '${jsrq}' 

) M ON m.销售名字 = k.订单服务经理 

GROUP BY

m.销售部门,

m.销售名字,

k.计算日期,

m.月收入贡献指标,

m.特殊加减项,

m.销售工资,

m.佣金加减项,

m.考核系数,

m.折标后存续规模

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

uinon 上下表字段得一致才行

image.png

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

远程调试后发现中文命名字段报错,转成英文字母和对应字段union即可

  • baibian baibian(提问者) 如果我就要分别统计这两张表中的这两个字段之和,该如何处理呢?
    2024-12-09 16:22 
  • 用户k6280494 用户k6280494 回复 baibian(提问者) 把没有字段的用0表示啊,比如 select sum(a) a,sum(b) b from ( select 5 a, 0 b union all select 0 a, 5 b ) a
    2024-12-09 16:25 
  • 用户k6280494 用户k6280494 回复 baibian(提问者) 懂我意思吧
    2024-12-09 16:26 
最佳回答
2
华莉星宸Lv7资深互助
发布于2024-12-9 16:17

select m.销售部门,

       m.销售名字,

       k.计算日期,

       m.月收入贡献指标 * 10000 as 月收入贡献指标,

       m.特殊加减项,

       m.销售工资,

       m.佣金加减项,

       m.考核系数,

       m.折标后存续规模,

       sum(k.销量) as 销量,

       sum(k.一次性收入贡献) as 一次性收入,

       sum(k.一次性代算净收入贡献) as 一次性代算净收入,

       sum(k.分阶段收入贡献) as 分阶段收入,

       sum(k.分阶段代算净收入贡献) as 分阶段代算净收入,

       sum(k.一次性认购费) as 一次性认购费,

       sum(k.分阶段认购费) as 分阶段认购费

  from (select a.ddfwjlbmeng as 部门,

               a.ddfwjl as 订单服务经理,

               case

                 when a.dkjedw = 1 then

                  a.dkje * a.hl / 10000

                 else

                  a.dkje * a.hl

               end as 销量,

               a.srgx as 一次性收入贡献,

               a.dssrgx as 一次性代算净收入贡献,

               a.rgf as 一次性认购费,

               null as 分阶段收入贡献,

               null as 分阶段代算净收入贡献,

               null as 分阶段认购费,

               left(a.jsrq, 7) as 计算日期

          from uf_ddgl a

         where a.jsfs = '1'

           and a.ddzt in ('2', '3')

           and a.ddssgs not in ('17', '5') and

          left(a.jsrq, 7) >= '${ksrq}' and

          left(a.jsrq, 7) <= '${jsrq}'

        union all

        select a.ddfwjlbmeng as 部门,

               a.ddfwjl as 订单服务经理,

               case

                 when a.dkjedw = 1 then

                  b.cxje * b.hl / 10000

                 else

                  b.cxje * b.hl

               end as 销量,

               null as 一次性收入贡献,

               null as 一次性代算净收入贡献,

               null as 一次性认购费,

               b.srgx as 分阶段收入贡献,

               b.dssrgx as 分阶段代算净收入贡献,

               b.rgf as 分阶段认购费,

               left(b.jxrq, 7) as 计算日期

          from uf_ddgl a

          left join uf_ddgl_dt1 b

            on b.mainid = a.id

         where a.jsfs = '0'

           and a.ddzt in ('2', '3')

           and a.ddssgs not in ('17', '5') and

          left(b.jxrq, 7) >= '${ksrq}' and

          left(b.jxrq, 7) <= '${jsrq}') k

 right join (select xsname as 销售名字,

                    ygzb   as 月收入贡献指标,

                    tsxm as 特殊加减项,

                    xsgz as 销售工资,

                    yjxm as 佣金加减项,

                    kkxs as 考核系数,

                    zbgm as 折标后存续规模,

                    xsbm as 销售部门             

               from uf_xsyjzb             

              where left(ksdate, 7) = '${ksrq}' and

               left(jsdate, 7) = '${jsrq}') M

    on m.销售名字 = k.订单服务经理

 group by m.销售部门,

          m.销售名字,

          k.计算日期,

          m.月收入贡献指标,

          m.特殊加减项,

          m.销售工资,

          m.佣金加减项,

          m.考核系数,

          m.折标后存续规模

最佳回答
0
胡歌Lv7中级互助
发布于2024-12-9 16:09(编辑于 2024-12-9 16:11)

image.png

注意别名

  • baibian baibian(提问者) b.srgx as 分阶段收入贡献,B表中的这个字段赋予了 分阶段收入贡献
    2024-12-09 16:11 
  • baibian baibian(提问者) 方便加微信或QQ详细聊聊吗
    2024-12-09 16:13 
最佳回答
0
ScyalcireLv7高级互助
发布于2024-12-9 16:15(编辑于 2024-12-9 16:18)

~~~~~~~~

最佳回答
0
小潘同學Lv5初级互助
发布于2024-12-9 16:27(编辑于 2024-12-9 16:41)

image.png

你用union all,那么上下2段SQL的字段顺序都要一模一样,如果没值,可以用

'' AS 分阶段收入贡献

来占一个字段的位置

  • 6关注人数
  • 97浏览人数
  • 最后回答于:2024-12-10 08:55
    请选择关闭问题的原因
    确定 取消
    返回顶部