查询语句后制作报表问题,求解答。

7a753c05263d208e6e904469ee97d55.jpg

一个表里我以地区和病种group by后统计状态列的个数,现在地区b没有病种乳腺癌,也就没有查询到数据,但是我现在想让地区b乳腺癌虽然没有数据但是可以显示为0.怎么修改一下?

lww19959 发布于 2019-11-29 09:34 (编辑于 2019-11-29 10:01)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
4
zsh331Lv8专家互助
发布于2019-11-29 09:38

楼主:这个需要有一个码表,将sql结果与码表left join一下即可!

  • lww19959 lww19959(提问者) 单独设置一个病种的字典表,然后left join吗?我尝试了还不会出现地区b乳腺癌这一列
    2019-11-29 09:57 
  • zsh331 zsh331 回复 lww19959(提问者) 字典表做主表
    2019-11-29 09:59 
  • lww19959 lww19959(提问者) 回复 zsh331 你看一下我上面新加了一个图片,帮忙看一下。 SELECT a.病种,b.* FROM [dbo].[test_1129_1] a --病种字典表 LEFT JOIN (SELECT COUNT(状态) AS 数量,地区,病种 FROM [dbo].[test_1129] GROUP BY 地区,病种) b ON a.病种=b.病种
    2019-11-29 10:02 
最佳回答
0
Edward_DDLv5中级互助
发布于2019-11-29 09:38(编辑于 2019-11-29 09:39)

做两个数据集,一个就你这样正常做,另一个只选择 病种 这一列(别忘了DISTINCT),然后显示病种的时候就用后面这个数据集,然后如果不显示0,就单独加一个隐藏列,这一列数据全部填充为0,最后显示数据是正常个数与这一列的和

多数据集使用方法

https://help.finereport.com/doc-view-320.html

  • lww19959 lww19959(提问者) 我做了两个数据集还是不显示,主要另一个表里没有数据,关联不上。您能有语句可以展示一下吗,感谢!
    2019-11-29 10:06 
最佳回答
0
free_zzLv6中级互助
发布于2019-11-29 09:42

union all select 0 数量,'地区b' 地区,'乳腺癌' 病种  from unin

试试这样行不行

  • lww19959 lww19959(提问者) 但是这个字段以后会有,只是暂时没有,这样 做的话就只能为0 了
    2019-11-29 09:56 
最佳回答
0
hippomenes157Lv3见习互助
发布于2019-12-2 09:18

地区和病种去重后做笛卡尔积,然后再外链group by语句

最佳回答
0
凌建Lv7高级互助
发布于2019-12-2 09:47

使用isnull(字段,0)  将查询出为null的转换0

最佳回答
0
孤陌Lv6资深互助
发布于2019-12-2 09:53

如果2个地区都没有这个病种 也显示?? 

如果是 那你就应该建立一个内置数据集 然后里面建立病种表 

然后单元格 第一列插入这个数据列 设置纵向扩展,然后你现在的数据集 插入地区 然后过滤条件

设置病种字段 等于 第一列的病种单元格 就可以了然后再把第一列隐藏起来 其他的你正常做


  • 7关注人数
  • 479浏览人数
  • 最后回答于:2019-12-2 09:53
    请选择关闭问题的原因
    确定 取消
    返回顶部