【问题标题】:BigQuery select value from 2 tables based on conditionBigQuery 根据条件从 2 个表中选择值
【发布时间】:2016-06-13 14:20:10
【问题描述】:

我有两张桌子 - bookingcom 和住宿。 我想在 1.7 之前获取数据。从餐桌住宿开始,从 1.7 开始。来自bookingcom

我尝试用代码实现它:

    SELECT
    CASE
    WHEN DATE(created) <= DATE("2015-07-01") THEN [ROI:ROI_accomodation.created]
    ELSE [ROI:bookingcom.created]
    END AS date
    FROM
    ROI.bookingcom,
    ROI.ROI_accomodation

但我收到以下错误:

 Field 'ROI:bookingcom.created' does not exist in any union input schema.

你能帮忙吗,我在哪里犯了错误? 谢谢

【问题讨论】:

    标签: join google-bigquery


    【解决方案1】:

    从概念上讲,您的错误是您的case when then 语句需要在每行的这两个表之间进行选择,这只有在您加入它们时才有可能,但您选择了它们的并集。

    我的印象是,您实际上并不需要两个表在同一日期,您只需要第一个表直到 7 月 1 日(我假设您想要 7 月 1 日而不是 1 月 7 日),然后是第二个表.如果这是正确的,你可以做类似的事情

    from
    (select column1,column2,column3 from ROI:bookingcom where date(created) <= date('2015-07-01')),
    (select column1,column2,column3 from ROI:ROI_accomodation where date(created) > date('2015-07-01'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多