mysql 的left join 命令求助

现在删除了模板参数,在数据集里面做的周查询的参数、按分类及名称查询的参数,SQL数据集的命令如下图,刚才的图发错了,一直使用“”date_add(A.日期,interval -7 day)=B.日期“”来作为日期条件,但是右侧B表的日期始终和左侧日期是一样的,另外如果加上日期条件“”where A.日期 between date_add('${time}',interval -7 day) and '${time}'“”这一句,周查询就不起作用了,而且显示错误,问题出在哪里呢?


FineReport 18504762929 发布于 2019-12-6 09:26 (编辑于 2019-12-9 12:59)
1min目标场景问卷 立即参与
回答问题
悬赏:8 F币 4人赏过 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
qhlLv6中级互助
发布于2019-12-6 10:21(编辑于 2019-12-9 14:07)

同一张表可以用自关联,日期关联一周前的一天,然后主表控制参数周的开始时间和结束时间就可以,大体思路:

select a.月份,a.分类,a.名称,a.日期,a.收入,a.数量,a.单价,
		b.月份,b.分类,b.名称,b.日期,b.收入,b.数量,b.单价
from 客源房费明细 as a
left join 客源房费明细 as b
on date_add(a.日期,interval -7 day)=b.日期
and a.分类=b.分类
and a.名称=b.名称
where 1=1
${if(len(dateinweek(time,1))==0,""," and a.日期>='"+dateinweek(time,1)+"'")}
${if(len(dateinweek(time,-1))==0,""," and a.日期<='"+dateinweek(time,-1)+"'")}
${if(len(分类)==0,""," and a.分类 in ('"+分类+"')")}
${if(len(名称)==0,""," and a.名称 in ('"+名称+"')")}			

image.png

  • 18504762929 18504762929(提问者) 您的提示感觉能实现,但是自关联提示错误:1066 - Not unique table/alias,还有参数日期是空间里的参数名称吧,参数名称是:Date 但系统提示:Date 是unknown clumn,未知列
    2019-12-06 11:37 
  • qhl qhl 回复 18504762929(提问者) 能方便把代码截图或者上传来看一下吗?自关联错误应该是你把表别名取成一样的了,改成不同的别名(尽管是同一张表,但是别名要不一样,且列名前要加表别名,如a.date,b.date),另外参数日期是控件的名称,但是在FR数据集里要改成\'${参数日期}\'这样的
    2019-12-06 11:51 
  • 18504762929 18504762929(提问者) 回复 qhl 是的,您是正确的,我没用数据集来写,我是在模板参数里设置的,语法还不熟,所以。。,我按照您的方法试一试,不行我再上图,谢谢
    2019-12-06 12:21 
  • qhl qhl 回复 18504762929(提问者) 好的,你先试吧
    2019-12-06 13:36 
  • 18504762929 18504762929(提问者) 回复 qhl 周时间的日期控件是在模板参数中做的,参考:https://help.finereport.com/doc-view-423.html 但是在数据集查询中,加入这个周时间控件的语句应该怎么写呢?
    2019-12-06 15:25 
最佳回答
0
873282620Lv3初级互助
发布于2019-12-6 10:21(编辑于 2019-12-6 10:21)

没看懂????    分两个SQL来弄不行?反正都是分别都是一周image.png

  • 18504762929 18504762929(提问者) 可以是可以,但是时间关联不了,要求是左侧显示14号一周的数据,右侧显示7号一周的数据,其实数据集是一个,只不过调用的是不同的星期
    2019-12-06 10:41 
  • qhl qhl 回复 18504762929(提问者) 数据集SQL用left join可以实现的
    2019-12-06 11:20 
  • 2关注人数
  • 803浏览人数
  • 最后回答于:2019-12-9 14:07
    请选择关闭问题的原因
    确定 取消
    返回顶部