maybe consider something along these lines. nb. not tested.

-- temp table holding new balances + key

create table NEW_BALS as
  select * from (
      select b.prev as NEW_BALANCE, a.key from TABLE_SQL a join TABLE_SQL_2
b on (a.key=b.key) where a.code='1';
      UNION ALL
      select b.prev as NEW_BALANCE, a.key from TABLE_SQL a join TABLE_SQL_3
b on (a.key=b.key) where a.code='2';
  ) z
  ;

-- i gave the table a new name but you could use TABLE_SQL instead of
NEW_TABLE_SQL for the true update.

insert overwrite table NEW_TABLE_SQL

   select * from (

-- intersected rows - you'll have to line-up the columns correctly
substituting b.NEW_BALANCE into the right position
   select  a.col1, b.NEW_BALANCE, a.col2, ... from TABLE_SQL a join
NEW_BALS b on (a.key=b.key)

   UNION ALL

-- non-intersected rows
   select a.* from TABLE_SQL a join NEW_BALS b on (a.key=b.key) where
b.NEW_BALANCE is null

   ) z
;

there's probably some typos in there but hopefully you get the idea and can
take it from here.





On Tue, Feb 18, 2014 at 4:39 AM, yogesh dhari <yogeshh...@gmail.com> wrote:

> Hello All,
>
> I have a use case where a table say TABLE_SQL is geting updated like.
>
>
> 1st Update Command
>
> update TABLE_SQL a
> set BALANCE = b.prev
> from TABLE_SQL_2 b
> where a.key = b.key and a.code = "1"
>
>
> 2nd Update Command
>
> update TABLE_SQL a
> set BALANCE = b.prev
> from TABLE_SQL_3 b
> where a.key = b.key and a.code = "2"
>
>
> same column is getting update twice in sql table,
>
> I have a Table in Hive say TABLE_HIVE.
>
> How to perform this kind operatation in HIVE,
>
> Pls Help,
>
> Thanks in Advance
> Yogesh Kumar
>
>
>
>
>
>
>
>
>
>
>

Reply via email to