不会游泳DE鱼 发表于 2022-2-28 10:11:12

报表展示数据时,参数多个有字符串型、日期型,如何展示全部再条件查询

本帖最后由 不会游泳DE鱼 于 2022-2-28 14:27 编辑

参数:
       数据类型有字符串型:大区,有日期型:开始时间、结束时间,我该如何修改
问题:
       进去没有任何数据展示出来,数据库表中有数据

查询语句:
       select * from 销售明细 where(销售大区 like concat('%',@大区,'%') or @大区='')and(创建时间 >= @开始时间 or @开始时间 = null) and (创建时间 <= @结束时间 or @结束时间 = null)




Bella.Yuan 发表于 2022-2-28 15:35:29

您好,您的开始实际和结束时间默认有范围吗?如果有范围的话可以给参数加默认日期。

不会游泳DE鱼 发表于 2022-2-28 16:14:35

Bella.Yuan 发表于 2022-2-28 15:35
您好,您的开始实际和结束时间默认有范围吗?如果有范围的话可以给参数加默认日期。

没有,进去就展示全部数据

James.Lv 发表于 2022-2-28 20:18:46

您好,试试这样写:
select * from 销售明细where(@大区=''or 销售大区=@大区 )   and (@开始日期='' or订购日期>=@开始日期)    and(@结束日期='' or订购日期<=@结束日期)


查询参数加个判断:{IIF(IsNothing(@开始日期), "", @开始日期)}

不会游泳DE鱼 发表于 2022-3-1 13:21:21

James.Lv 发表于 2022-2-28 20:18
您好,试试这样写:
select * from 销售明细where(@大区=''or 销售大区=@大区 )   and (@开始日期=' ...

这是我修改的:
报这个错:

Bella.Yuan 发表于 2022-3-1 17:59:04

您好,您试一下下面这种方式:1)新建一个数据集2,数据集2的sql只取原来数据集的日期的最小值,即只取一个最小日期,作为开始日期的默认数据;
2)结束日期的默认数据为:{today()};
3)使用sql:
select * from 销售明细 where'全选' IN (@大区)OR 销售大区 IN(@大区)and(订购日期 >= @开始日期 or @开始日期 = null) and (订购日期<= @结束日期 or @结束日期 = null)4)预览报表,不输入展示全部数据,输入参数值,展示参数值对应数据。
其中大区参数的设置参考下面链接:
【参数过滤】报表多值文本框使用技巧分享
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=141841&fromuid=65049
(出处: 葡萄城产品技术社区)


页: [1]
查看完整版本: 报表展示数据时,参数多个有字符串型、日期型,如何展示全部再条件查询