用IN的参数设置为空也可以查询

自己写了一张报表,有两个查询条件用的是IN,只有在参数中填了数值后才能查询到结果,具体如下图:



现在想请请教一下,如何使得这两个参数中不填数值,就能默认查询所有结果。

在线等……
FineReportbin_zhou1 发布于 2016-9-5 11:05
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共18回答
最佳回答
0
迈达斯之手发布于2016-9-5 11:05(编辑于 2023-9-6 09:34)
555
最佳回答
0
yets11发布于2016-9-5 11:08(编辑于 2023-9-6 09:34)
555
  • bin_zhou1 bin_zhou1(提问者)

    SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,\"\",\"and 货主地区 = \'\" + area + \"\'\")} ${if(len(province) == 0,\"\",\"and 货主省份 = \'\" + province + \"\'\")},看了这个还是不知道怎么写,针对我的例子,大神能帮我写一下吗?
    回复
    2016-09-05 11:43 
最佳回答
0
bin_zhou1发布于2016-9-5 11:43(编辑于 2023-9-6 09:34)
555
  • yets11 yets11

    把这两行改成
    ${if(len(一级承运商) = 0,\"\",\"and o.attribute9 in (一级承运商)\")}  
    ${if(len(二级承运商) = 0,\"\",\" and o.servprov_gid in (二级承运商)\")}
    回复
    2016-09-05 12:06 
最佳回答
0
gqmao发布于2016-9-5 11:57(编辑于 2023-9-6 09:34)
555
最佳回答
0
gqmao发布于2016-9-5 11:58(编辑于 2023-9-6 09:34)
555
最佳回答
0
yets11发布于2016-9-5 12:06(编辑于 2023-9-6 09:34)
555
  • bin_zhou1 bin_zhou1(提问者)

    按照你答案改了,但是预览的时候显示缺失表达式,大神再帮忙看看啊。

    [attach]43772[/attach]

    [attach]43773[/attach]

    回复
    2016-09-05 13:19 
最佳回答
0
bin_zhou1发布于2016-9-5 13:19(编辑于 2023-9-6 09:34)
555
  • windy_gui windy_gui

    ${if(len(一级承运商) = 0,\"\",\"and o.attribute9 in (一级承运商)\")}  
    ${if(len(二级承运商) = 0,\"\",\" and o.servprov_gid in (二级承运商)\")}
    你的语句外面的and拿掉,直接用这样的表达式啊
    回复
    2016-09-05 13:41 
  • yets11 yets11

    我是让你两行全换掉,不是还留两个and。。。
    回复
    2016-09-05 14:32 
最佳回答
0
windy_gui发布于2016-9-5 13:41(编辑于 2023-9-6 09:34)
555
最佳回答
0
yets11发布于2016-9-5 14:32(编辑于 2023-9-6 09:34)
555
  • bin_zhou1 bin_zhou1(提问者)

    下面是我的部分代码,之所以没有去掉AND,是因为还有其他过滤条件啊,如果AND去掉了,就不能查询了。

    FROM ORDER_RELEASE O
    INNER JOIN LOCATION L
        ON O.ATTRIBUTE11=\'发货\'
       AND O.ATTRIBUTE1 IN (\'${货主}\')--(\'SCT/KX.MDLZ-DT\',\'SCT/KX.MDLZ-KA\',\'SCT/KX.SZ1-MDLZ-KA\')
       AND O.USER_DEFINED1_ICON_GID IN (\'${订单状态}\')--(\'SCT/KX.OR_AUDITED\',\'SCT/KX.OR_BOOKED\',\'SCT/KX.OR_APPROVED\')
       AND (TO_CHAR(O.ATTRIBUTE_DATE3,\'YYYY-MM-DD\')=\'${开单时间}\' OR \'${开单时间}\' IS NULL)
       AND (${if(len(一级承运商) = 0,\"\",\"and o.attribute9 in (一级承运商)\")})  
       AND (${if(len(二级承运商) = 0,\"\",\" and o.servprov_gid in (二级承运商)\")})

       AND O.DEST_LOCATION_GID = L.LOCATION_GID
       INNER JOIN LOCATION_ADDRESS LA
       ON L.LOCATION_GID=LA.LOCATION_GID
       INNER JOIN ORDER_RELEASE_REFNUM ORR
       ON ORR.DOMAIN_NAME=\'SCT/KX\'
       AND ORR.ORDER_RELEASE_REFNUM_QUAL_GID=\'ORDER_REFERENCE1\'
       AND O.ORDER_RELEASE_GID=ORR.ORDER_RELEASE_GID
    回复
    2016-09-05 15:12 
最佳回答
0
bin_zhou1发布于2016-9-5 15:12(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 756浏览人数
  • 最后回答于:2016-9-18 23:59
    活动推荐 更多
    热门课程 更多
    返回顶部