join多表

mec1mxoz  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(425)

我有数据,我需要加入到不同的表根据条件,月。我正在使用procsql。目前我正在使用

  1. Proc sql;
  2. create table test as
  3. If month="mar"
  4. then
  5. select a.*,
  6. b.var1,
  7. b.var2,
  8. from
  9. data as a
  10. left join
  11. data2_mar
  12. on a.id=b.id
  13. else
  14. select a.*,
  15. c.var1,
  16. c.var2,
  17. from
  18. data as a
  19. left join
  20. data2_April
  21. on a.id=c.id;
  22. Run;

然而,这是行不通的。非常感谢您的帮助。

eblbsuwk

eblbsuwk1#

您可以使用条件联接在单个查询中执行此操作:

  1. select
  2. a.*,
  3. coalesce(b.var1, c.var1) var1,
  4. coalesce(b.var2, c.var2) var2
  5. from data a
  6. left join data2_mar b
  7. on b.id = a.id
  8. and month = 'mar'
  9. left join data2_april c
  10. on c.id = a.id
  11. and month = 'april'

请注意,您不应该有多个表来存储不同月份的相同数据。相反,您应该有一个单独的表,再多出一列来存储月份。

相关问题