数据集SQL

微信截图_20220224135422.png微信截图_20220224124931.png

微信截图_20220224112343.png微信截图_20220223221004.png就比如我现在是兴安盟 我非自施工收入什么的都有 就没有回款 然后他就不显示兴安盟了  我现在要做到有一个条件满足他就显示

微信截图_20220223220646.png

现在我查出来的地市必须得所有的那些条件都满足才会显示 可不可以做到 满足其中一个条件就能显示出来

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

你先把地市弄出来单独当成一个维度表,然后再套子left join 查询去查数据。。这样就保证所有地市都会展示出来。不管子查询是否有数据。。。

select t0.city,t1.* from 

( select city from FR_BUILD_PAYMENT group by city ) t0

left join

(

select a.city 地市,a.SR 收入,b.CB 成本,c.HK 回款,a.SR-b.CB 利润 from

  (select CITY,SUM(SUM) SR from 

    FR_BUILD_PAYMENT 

where WHETHER_UNIT='GC' 

AND COST_TYPE in ('非自施工收入','自施工非交付收入','自施工交付收入') 

group by CITY) a, 

join 

  (select CITY,SUM(SUM) CB from FR_BUILD_PAYMENT 

    where WHETHER_UNIT='GC' 

    AND COST_TYPE in ('非自施工成本','自施工非人工成本','自施工人工成本') 

    group by CITY) b on a.city=b.city

join 

     (select CITY,SUM(SUM) HK from FR_BUILD_PAYMENT 

      where WHETHER_UNIT='GC' 

      AND COST_TYPE='回款' group by CITY) c  on a.city=b.city) t1 on t0.city=t1.city

  • 余悸 余悸(提问者) 第一城是地市维度的表 这个是啥
    2022-02-23 22:30 
  • 余悸 余悸(提问者) select a.city,b.* from ( select city from FR_BUILD_PAYMENT group by city ) a left join (select a.city 地市,a.SR 收入,b.CB 成本,c.HK 回款,a.SR-b.CB 利润 FROM (select CITY,SUM(SUM) SR from FR_BUILD_PAYMENT where WHETHER_UNIT=\'GC\' AND COST_TYPE in (\'非自施工收入\',\'自施工非交付收入\',\'自施工交付收入\') group by CITY) a, (select CITY,SUM(SUM) CB from FR_BUILD_PAYMENT where WHETHER_UNIT=\'GC\' AND COST_TYPE in (\'非自施工成本\',\'自施工非人工成本\',\'自施工人工成本\') group by CITY) b, (select CITY,SUM(SUM) HK from FR_BUILD_PAYMENT where WHETHER_UNIT=\'GC\' AND COST_TYPE=\'回款\' group by CITY) c where a.CITY=b.CITY and a.CITY=c.CITY) b on a.city=b.city
    2022-02-23 22:42 
  • 余悸 余悸(提问者) 这是我现在的SQL 报错了 您帮我修改一下
    2022-02-23 22:42 
  • CD20160914 CD20160914 回复 余悸(提问者) 改在上面了。。你看一下
    2022-02-24 08:23 
  • 余悸 余悸(提问者) 看一下这个报错 第七行标出来了 截图发上面了
    2022-02-24 11:24 
最佳回答
0
3143511Lv5中级互助
发布于2022-2-24 08:44

可以selct * 下,截图吗?

  • 余悸 余悸(提问者) 那个表的数据比较多 好几千条
    2022-02-24 11:24 
  • 余悸 余悸(提问者) 发上面了 你看一下
    2022-02-24 11:26 
  • 3143511 3143511 回复 余悸(提问者) 我试一下: with temp1 as ( select city from 表 ), temp2 as( select * from 表 )select temp1.city,temp2.* from temp1 left join temp2 on (temp1.city = temp2.city) 我的SQL水平有限,感觉可以利用left join 实现这个功能,希望可以帮到你!
    2022-02-25 08:22 
  • 3关注人数
  • 520浏览人数
  • 最后回答于:2022-2-24 13:54
    请选择关闭问题的原因
    确定 取消
    返回顶部