数据集sql日期判断报错

image.pngimage.png我想判断这个日期最小值和参数比较,但是怎么设置都报错,求大神指导

select 

co.orderno,

co.orderStatus,

ds.licensePlate, -- 车牌号

Min(ds.date) as rq,

(ds.odometerEndMileage-ds.odometerStartMileage) as lc,-- 里程

ds.operateMode, -- 经营模式:0-公司化;1- 全资; 2- 合资; 3-责任

ds.workOrderId,

ds.status,-- 0-待执行;1-执行中;2-已完成;3-已改派;4-已取消

 '1' bc,-- 班次

ds.orgName -- 企业名称

from charter_order co

left join dispatch_vehicle ds on co.orderno= ds.orderid

-- left join charter_journey cj on co.orderno= cj.orderno

where co.orderStatus=7 and ds.status =2 

 AND left(rq,10) >= '${sj}'  AND left(rq,10) <= '${sj2}'   

group by co.orderno,ds.licensePlate

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

你这个rq字段都没有,只是你上面用了一个最小值,取的别名你要套一层子查询

还有你的group by 字段不全,你用了聚合函数。除了聚合函数以外所有字段,都 要放在group by 后面!

image.png

select t.* from (

select 

co.orderno,

co.orderStatus,

ds.licensePlate, -- 车牌号

Min(ds.date) as rq,

sum(ds.odometerEndMileage-ds.odometerStartMileage) as lc,-- 里程

ds.operateMode, -- 经营模式:0-公司化;1- 全资; 2- 合资; 3-责任

ds.workOrderId,

ds.status,-- 0-待执行;1-执行中;2-已完成;3-已改派;4-已取消

 '1' bc,-- 班次

ds.orgName -- 企业名称

from charter_order co

left join dispatch_vehicle ds on co.orderno= ds.orderid

where co.orderStatus=7 and ds.status =2   

group by co.orderno,

co.orderStatus,

ds.licensePlate,

ds.operateMode, 

ds.workOrderId,

ds.status,

ds.orgName

) t

where 1=1

 AND left(t.rq,10) >= '${sj}'  AND left(t.rq,10) <= '${sj2}' 

最佳回答
0
luojian0323Lv7资深互助
发布于2023-8-25 13:43

rq要先套一层查询,才能用在where条件中。

  • 3关注人数
  • 182浏览人数
  • 最后回答于:2023-8-25 13:49
    请选择关闭问题的原因
    确定 取消
    返回顶部