hivesql-data-issue-case-statement-add\u月

kr98yfug  于 2021-06-01  发布在  Hadoop
关注(0)|答案(0)|浏览(198)

我必须从装货日期算起1年内每个月最后一天的费用。
查询1:

select 
     id1,id2,date_col,
    sum(
    CASE
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-11)) then     col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-10)) then     col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-9)) then     col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-8)) then     col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-7)) then col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-6)) then col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-5)) then     col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-4)) then     col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-3)) then col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-2)) then col_n
    WHEN to_date(table_1.date_col) = to_date(add_months('2016-03-31',-1)) then col_n
    WHEN to_date(table_1.date_col) = to_date('2016-03-31') then col_n
END  
    ) as col_n_sum  
    from table_1 table_1 
    where id2=7 and id1 = 2
    group by  id1,id2 ,date_col

查询1的输出
查询2:只从表中选择-不带case语句:select查询的输出
问题:为什么4月、6月都是空的。。。。尽管表中有所有月份的数据。
如果我硬编码april,那么我会得到数据查询-

CASE WHEN to_date(table_1.date_col) = to_date('2015-04-30') then col_n .

偶数-查询-

select * from table_1 where (to_date(table_1.date_col) = to_date(add_months('2016-03-31',-11)) ) and  id1 = 2 and id2 = 7 giving data .

添加\u month不处理案例或我缺少的内容。
我用的是云彩色调Hive。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题