填报设置,数据列重复

image.png

SELECT a.ID,b.*,c.*,d.*,e.*,f.*,g.*,a.* FROM 流向录入 a left join 医院等级及所属区 b on a.医院编号=b.医院编号 

left join 区域销售经理 c on c.区=b.区

left join 客户经理 d on d.业务代表=b.业务代表

left join 医院终端类型 e on e.医院级别=b.医院等级

left join 产品价格信息 f on f.产品编号=a.产品编号

left join 产品 g on g.产品编号=a.产品编号 

where a.销售日期>='${开始日期}' and a.销售日期<='${截止日期}'

${if(len(医院名称) == 0,"","and a.医院名称 like '%" + 医院名称 + "%'")}

${if(len(商业公司) == 0,"","and a.商业公司 like '%" + 商业公司 + "%'")}

${if(len(客户经理) == 0,"","and d.客户经理 = '" + 客户经理 + "'")}

${if(len(业务代表) == 0,"","and b.业务代表 = '" + 业务代表 + "'")}

${if(len(是否支付) == 0,"","and 是否支付 = '" + 是否支付 + "'")}

${if(len(产品销售经理) == 0,"","and a.产品销售经理 = '" + 产品销售经理 + "'")}

${if(len(商品名称) == 0,"","and a.商品名称 like '%" + 商品名称 + "%'")}

${if(len(规格) == 0,"","and a.规格 = '" + 规格 + "'")}

FineReport 用户G1377850 发布于 2021-12-29 12:03 (编辑于 2021-12-29 14:07)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2021-12-29 13:01

你的sql里面是使用了*返回了所有字段吧。你把要的字段取出来。不要用*

  • 用户G1377850 用户G1377850(提问者) SELECT a.ID,b.*,c.*,d.*,e.*,f.*,g.*,a.* FROM 流向录入 a left join 医院等级及所属区 b on a.医院编号=b.医院编号 left join 区域销售经理 c on c.区=b.区 left join 客户经理 d on d.业务代表=b.业务代表 left join 医院终端类型 e on e.医院级别=b.医院等级 left join 产品价格信息 f on f.产品编号=a.产品编号 left join 产品 g on g.产品编号=a.产品编号 where a.销售日期>=\'${开始日期}\' and a.销售日期<=\'${截止日期}\' ${if(len(医院名称) == 0,\"\",\"and a.医院名称 like \'%\" + 医院名称 + \"%\'\")} ${if(len(商业公司) == 0,\"\",\"and a.商业公司 like \'%\" + 商业公司 + \"%\'\")} ${if(len(客户经理) == 0,\"\",\"and d.客户经理 = \'\" + 客户经理 + \"\'\")} ${if(len(业务代表) == 0,\"\",\"and b.业务代表 = \'\" + 业务代表 + \"\'\")} ${if(len(是否支付) == 0,\"\",\"and 是否支付 = \'\" + 是否支付 + \"\'\")} ${if(len(产品销售经理) == 0,\"\",\"and a.产品销售经理 = \'\" + 产品销售经理 + \"\'\")} ${if(len(商品名称) == 0,\"\",\"and a.商品名称 like \'%\" + 商品名称 + \"%\'\")} ${if(len(规格) == 0,\"\",\"and a.规格 = \'\" + 规格 + \"\'\")}
    2021-12-29 14:07 
  • CD20160914 CD20160914 回复 用户G1377850(提问者) 后面的表不要用*呀。你b c d e f g 这些表都有id。那么它肯定就有重复了。你把要的字段展示出来就行了。。
    2021-12-29 14:08 
  • CD20160914 CD20160914 回复 用户G1377850(提问者) 你后面的表全用*,后面的表中只要有id字段的,它也会展示出来。这样你在复选的时候都不知道是哪个表的id了。。。如果你一定要。那么你要给它取个别名。
    2021-12-29 14:09 
最佳回答
0
柿柿Lv4见习互助
发布于2021-12-29 12:16

检查一下你的sql代码 ,应该是左右连接表的id都取出来了

  • 3关注人数
  • 360浏览人数
  • 最后回答于:2021-12-29 14:07
    请选择关闭问题的原因
    确定 取消
    返回顶部