sql问题

比如今天2月2日,今天取的数据就是2月2日的。2月1日以前取的是2月2日前,2月3日以后取的就是最新的2月2日的。

SELECT

P.ORG_ID,

P.ORG_NAME,

p.LIQ_PROD_DAILY ,

p.STATION_NAME,

P.PROD_DATE

FROM

PC_cZ_P34D_PL434N_DqqILY p  

WHERE

 p.org_id = '${org_id}' 

 and  p.prod_date <= to_date('${reportDate}', 'yyyy-MM-dd')

 ORDER BY p.org_id ,P.PROD_DATE DESC

FineReport SQL 用户G2632943 发布于 2023-2-3 10:51
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
LTC朝Lv6高级互助
发布于2023-2-3 10:57(编辑于 2023-2-3 11:19)

取参数reportDate所填写日期之前的最新一天的数据?

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

SELECT

P.ORG_ID,

P.ORG_NAME,

p.LIQ_PROD_DAILY,

p.STATION_NAME,

P.PROD_DATE 

FROM

PC_cZ_P34D_PL434N_DqqILY p 

WHERE

p.org_id = '${org_id}'

  AND p.prod_date = (select max(a.prod_date) from PC_cZ_P34D_PL434N_DqqILY a

                    where a.prod_date <= to_date ( '${reportDate}', 'yyyy-MM-dd' ))

ORDER BY

p.org_id,

P.PROD_DATE DESC

最佳回答
0
CD20160914Lv8专家互助
发布于2023-2-3 10:54

2月1日以前取的是2月2日前

这是什么逻辑,没有听懂。

最佳回答
0
JL98Lv6中级互助
发布于2023-2-3 10:54
ROW_NUMBER() OVER(PARTITION BY)函数

:https://blog.csdn.net/imba79426/article/details/118603105

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-3 10:58(编辑于 2023-2-3 11:19)

理解偏了 改一下:

${if(reportDate=today(),"SELECT

P.ORG_ID,

P.ORG_NAME,

p.LIQ_PROD_DAILY ,

p.STATION_NAME,

P.PROD_DATE

FROM

PC_cZ_P34D_PL434N_DqqILY p 

WHERE

 p.org_id = '"+org_id+"'

 and  p.prod_date = to_date('"+reportDate+"', 'yyyy-MM-dd')

 ORDER BY p.org_id ,P.PROD_DATE DESC",if(reportDate<today(),"SELECT

P.ORG_ID,

P.ORG_NAME,

p.LIQ_PROD_DAILY ,

p.STATION_NAME,

P.PROD_DATE

FROM

PC_cZ_P34D_PL434N_DqqILY p 

WHERE

 p.org_id = '"+org_id+"'

 and  p.prod_date <= to_date('"+today()+"', 'yyyy-MM-dd')

 ORDER BY p.org_id ,P.PROD_DATE DESC","SELECT

P.ORG_ID,

P.ORG_NAME,

p.LIQ_PROD_DAILY ,

p.STATION_NAME,

P.PROD_DATE

FROM

PC_cZ_P34D_PL434N_DqqILY p 

WHERE

 p.org_id = '"+org_id+"' 

 and  p.prod_date = to_date('"+reportDate+"', 'yyyy-MM-dd')

 ORDER BY p.org_id ,P.PROD_DATE DESC"))}

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

太复杂了简化一下

SELECT

P.ORG_ID,

P.ORG_NAME,

p.LIQ_PROD_DAILY ,

p.STATION_NAME,

P.PROD_DATE

FROM

PC_cZ_P34D_PL434N_DqqILY p  

WHERE

 p.org_id = '${org_id}' 

 and ${if(reportDate<today(),"p.prod_date <= to_date('"+today()+"', 'yyyy-MM-dd')","p.prod_date = to_date('"+today()+"', 'yyyy-MM-dd')")}

 ORDER BY p.org_id ,P.PROD_DATE DESC

最佳回答
0
luojian0323Lv7资深互助
发布于2023-2-3 11:00
SELECT P.ORG_ID, P.ORG_NAME, p.LIQ_PROD_DAILY , p.STATION_NAME, P.PROD_DATE FROM PC_cZ_P34D_PL434N_DqqILY p   WHERE  p.org_id = '${org_id}'   ${if(reportDate<="2023-02-02" ,"and  p.prod_date <= '"+reportDate+"'","and  p.prod_date >'"+reportDate+"'")}

最佳回答
0
YmengLv5中级互助
发布于2023-2-3 11:06

p.prod_date <= to_date('${reportDate}', 'yyyy-MM-dd')改为${if(reportDate>=today(),"p.prod_date=to_date('"+today()+"','yyyy-MM-dd')","p.prod_date<=to_date('"+today()+"','yyyy-MM-dd')")}

image.png

image.png

image.png

  • 5关注人数
  • 454浏览人数
  • 最后回答于:2023-2-3 11:19
    请选择关闭问题的原因
    确定 取消
    返回顶部