Как написать запрос базы на другое значение таблицы - PullRequest
0 голосов
/ 20 января 2020

У меня есть две таблицы, но я хочу добавить новый идентификатор, если

select a.* ,
case tax_year  
when to_char(report_end ,'YYYY') then    'Y' 
else 'N' 
end as wash_sale_3y_stats 
from fct_w_sales a, fct_by_lot b
where a.lot_id =b.unique_trade_identifier(+)   and tax_year = to_char(report_end(+) ,'YYYY')
order by a.client_id 

report_end в fct_by_lot. report_end всегда одно и то же, если мы находимся в 2019 году, например, будет 2019.

Но в fcr_w_sales мне нужно выбрать те, где tax_year равно report_end именно поэтому я хотел флаг, чтобы я мог суммировать числа.

сообщение об ошибке для этого запроса: ORA-00932: несовместимые типы данных: ожидаемый NUMBER получил CHAR 00932. 00000 - "несовместимые типы данных: ожидаемый% s получил% s "* Причина:
* Действие: Ошибка в строке: 5 Столбец: 6

1 Ответ

0 голосов
/ 20 января 2020

Попробуйте, если это работает для вас. Я добавлю описание изменений в код.

select a.* ,
       case tax_year  
       when extract(year from report_end) 
         then 'Y' 
         else 'N' 
       end as wash_sale_3y_stats 
  from fct_w_sales a 
  left join fct_by_lot b
    On a.lot_id = b.unique_trade_identifier  
   and tax_year = extract(year from report_end)
order by a.client_id 

Cheers !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...