SQL语句写法

截图3.png1、要合并A表、B表、C表(A左合并B,B合并C)

2、A表、B表、C表都只提取部分字段,且提取的字段需要重命名(因为英文字段前台不好展示)

3、A表需要进行日期期间过滤,2022-01-01到202-04-30(需要A表根据日期过滤后再和B表和C表合并,因为A表数据量大)

4、需要在FineBI通过SQL数据集执行该语句

FineBI yzm742603 发布于 2022-5-17 10:26 (编辑于 2022-5-17 11:52)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-5-17 10:29(编辑于 2022-5-17 10:42)

SELECT a.ttt as 'ttt',b.vvvv as 'vvv',c.xxxx as 'xxxx'  FROM A表  A LEFT JOIN B表 B ON A.xxx=b.xxx INNER JOIN C表 C ON B.YYYY=C.YYYY where a.rq>='' and a.rq<=''

重命名示例

image.png

  • yzm742603 yzm742603(提问者) 1、“LEFT JOIN B表 B ”,后面这个B代表什么意思? 2、B表和C表如果需要提取部分字段并把字段重命名需要怎么处理 3、后面这个whERE这个条件能不能前移,因为A表数据量很大,是否能提前过滤呢
    2022-05-17 10:35 
  • Z4u3z1 Z4u3z1 回复 yzm742603(提问者) 1、B表 B 等效于 B表 AS B;2、重命名就是SELECT FROM 中间部分的 as;3、可以 参考 snrtuemc 的 AA(包含前面括号部分)
    2022-05-17 10:39 
最佳回答
0
snrtuemcLv8专家互助
发布于2022-5-17 10:30

按下面的格式

select AA.a as '字段1',B.b as '字段2',C.c as '字段3'  from (select * from A where 日期字段 between '2022-01-01'  and '202-04-30') AA

left join B on AA.id=B.id

left join C on B.id=C.id

  • yzm742603 yzm742603(提问者) AA是什么意思,我看第一行是AA.a,后面是B.b
    2022-05-17 11:04 
  • snrtuemc snrtuemc 回复 yzm742603(提问者) 就是后面A表过滤后,防止出问题,把过滤后的数据作为新的表AA
    2022-05-17 11:06 
  • yzm742603 yzm742603(提问者) 回复 snrtuemc 如果A表想增加其他条件应该如何修改,我看括号里面日期过滤已经有一个and 条件了,谢谢
    2022-05-17 11:08 
  • snrtuemc snrtuemc 回复 yzm742603(提问者) 直接继续and 字段2=接下去就可以,这个and是between and的格式,不影响你后续的and条件的
    2022-05-17 11:12 
  • yzm742603 yzm742603(提问者) 回复 snrtuemc 按照上述语句查询有报错,请看下如何修改,详见截图,谢谢
    2022-05-17 11:35 
最佳回答
0
霜凡Lv5中级互助
发布于2022-5-17 10:30

SELECT 

A.XX,B.XX,C.XX

FROM (SELECT ... FROM A WHERE DATE BETWEEN '2022-01-01' AND '202-04-30') A

LEFT JOIN B

ON .......

LEFT JOIN C

ON .......

最佳回答
0
梦似幻亦真Lv3见习互助
发布于2022-5-17 10:38

WITH T10 AS(

    SELECT  A,BId,C FROM A WHERE DATE>='2022-01-01' AND DATE<'202-04-30'

)

SELECT * FROM T10  AS  T1

LEFT B  AS T2

ON T1.BId=T2.BId

LEFT C AS T3

ON T2.CId = T3.CId

最佳回答
0
CD20160914Lv8专家互助
发布于2022-5-17 12:17

数据库兼容性问题,把「实时数据」切换成「抽取数据」模式即可;

image.png

实时数据和抽取数据的区别- FineBI帮助文档 FineBI帮助文档 (fanruan.com)

  • yzm742603 yzm742603(提问者) 是抽取数据模式的,还是报错
    2022-05-17 12:36 
  • CD20160914 CD20160914 回复 yzm742603(提问者) 你的sql放在数据库中去执行会错吗?
    2022-05-17 13:29 
  • 5关注人数
  • 699浏览人数
  • 最后回答于:2022-5-17 12:17
    请选择关闭问题的原因
    确定 取消
    返回顶部