请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

CainduranceTX
中级会员   /  发表于:2025-1-21 09:52  /   查看:108  /  回复:11
50金币
请问,wyn7,原生查询数据集如何实现参数为空的时候,显示全部数据。


SQL的查询语句如下:

SELECT
    [统筹区类别],
    [统筹区],
    SUM([人次值]) AS [人次值合计],
    SUM([总费用]) AS [总费用合计],
    SUM([个人现金支付]) AS [个人现金支付合计],
    SUM([个人账户支付]) AS [个人账户支付合计],
    SUM([共济账户支付]) AS [共济账户支付合计],
    SUM([家庭账户支付]) AS [家庭账户支付合计],
    SUM([统筹支付]) AS [统筹支付合计],
    SUM([大病支付]) AS [大病支付合计],
    SUM([医疗救助]) AS [医疗救助合计],
    SUM([公务员补助]) AS [公务员补助合计],
    SUM([大病补充支付]) AS [大病补充支付合计],
    SUM([企业补充支付]) AS [企业补充支付合计],
    SUM([医院负担金额]) AS [医院负担金额合计],
    SUM([其他支付]) AS [其他支付合计],
    SUM([钱包基金]) AS [钱包基金合计],
    SUM([总费用]) - SUM([个人现金支付]) - SUM([医院负担金额]) AS [医院总垫付]
FROM
    [医保结算明细].[dbo].[医保结算明细]
WHERE
    [操作日期] BETWEEN @T1 AND @T2
    AND [删除标记] = 0
GROUP BY
    [统筹区类别],
    [统筹区]



现在需要增加一个参数 P1  用来筛选 统筹区类别,P1为空的时候,显示全部数据。

最佳答案

查看完整内容

可以试试这个写法

11 个回复

倒序浏览
最佳答案
最佳答案
lucas.Yan
超级版主   /  发表于:2025-1-21 09:52:59
来自 8#
  1. WHERE
  2. (@P1 is null) or (
  3.     @P1 = [统筹区类别]
  4.     AND [操作日期] BETWEEN @T1 AND @T2
  5.     AND [删除标记] = 0
  6. )
复制代码
可以试试这个写法
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2025-1-21 11:49:19
2#
您好,原生查询数据集是根据您写的sql直接在数据库中运行获取数据的。所以您可以直接在sql中处理这段逻辑,您可以参考下面这段逻辑:

  1. SELECT *
  2. FROM sales
  3. WHERE salesperson_name = '销售人员名称' OR '销售人员名称' IS NULL;
复制代码



回复 使用道具 举报
CainduranceTX
中级会员   /  发表于:2025-1-21 11:57:13
3#
Eden.Sun 发表于 2025-1-21 11:49
您好,原生查询数据集是根据您写的sql直接在数据库中运行获取数据的。所以您可以直接在sql中处理这段逻辑, ...

好的我试试老爷
回复 使用道具 举报
CainduranceTX
中级会员   /  发表于:2025-1-21 12:06:41
4#
Eden.Sun 发表于 2025-1-21 11:49
您好,原生查询数据集是根据您写的sql直接在数据库中运行获取数据的。所以您可以直接在sql中处理这段逻辑, ...

销售人员名称,是参数名吧
回复 使用道具 举报
CainduranceTX
中级会员   /  发表于:2025-1-21 14:41:41
5#
Eden.Sun 发表于 2025-1-21 11:49
您好,原生查询数据集是根据您写的sql直接在数据库中运行获取数据的。所以您可以直接在sql中处理这段逻辑, ...

不行啊老板,为空的时候还是不显示数据:
image.png339677733.png
回复 使用道具 举报
CainduranceTX
中级会员   /  发表于:2025-1-21 14:45:32
6#
Eden.Sun 发表于 2025-1-21 11:49
您好,原生查询数据集是根据您写的sql直接在数据库中运行获取数据的。所以您可以直接在sql中处理这段逻辑, ...

不能用 is NULL
得用 =''
哈哈哈
回复 使用道具 举报
CainduranceTX
中级会员   /  发表于:2025-1-21 15:02:15
7#
Eden.Sun 发表于 2025-1-21 11:49
您好,原生查询数据集是根据您写的sql直接在数据库中运行获取数据的。所以您可以直接在sql中处理这段逻辑, ...

不行哈哈,这个效果最后是不管你参数里有没有东西都是显示全部的数
回复 使用道具 举报
小石榴
注册会员   /  发表于:2025-1-21 16:08:07
9#
本帖最后由 小石榴 于 2025-1-21 16:10 编辑

可以试下这样写Sql
  • WHERE
  • (@P1 ='') or (
  •     @P1 = [统筹区类别]
  •     AND [操作日期] BETWEEN @T1 AND @T2
  •     AND [删除标记] = 0
  • )



回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2025-1-22 09:06:43
10#
您好,您的问题解决了吗?如果没有的话,现在还有什么问题呢。您可以说一下,看看怎么帮助您解决呢。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部