Помогите с запросом...

timati
Дата: 01.12.2009 11:08:50
помогите с запросом

есть таблица ХХХХ (Ид_НАИМЕНОВАНИЯ,Язык_наименования,наиенование)

1 ru телефон
1 en phone
2 ru хлеб
3 ru ваза
3 en vases

на результат нужно (ид_наименование,наименование на русском, наименование на англ.)

1 телефон phone
2 хлеб
3 ваза vases
Добрый Э - Эх
Дата: 01.12.2009 11:47:58
group by + decode / case тебе в помощь
Добрый Э - Эх
Дата: 01.12.2009 11:52:21
-- Тестовые данные:
with
  t as
    (
      select 1 id, 'ru' lang, 'телефон' name from dual union all
      select 1 id, 'en' lang, 'phone' name from dual union all
      select 2 id, 'ru' lang, 'хлеб' name from dual union all
      select 3 id, 'ru' lang, 'ваза' name from dual union all
      select 3 id, 'en' lang, 'vases' name from dual
    )
--
-- Основной запрос:
select id,
       max(decode(lang,'ru',name)) as name_ru,
       max(decode(lang,'en',name)) as name_en
  from t
 group by id;

Query finished, retrieving results...

 ID    NAME_RU   NAME_EN
----   -------   -------
   1   телефон   phone
   2   хлеб
   3   ваза      vases

3 row(s) retrieved
копаю модели
Дата: 01.12.2009 17:36:47
with datatab as (
  select 1 as id, 'ru' lang, 'телефон' val from dual  union all
  select 1, 'en', 'phone' from dual union all 
  select 2, 'ru', 'хлеб' from dual union all
  select 3, 'ru', 'ваза' from dual union all
  select 3, 'en', 'vases'from dual
)
select id, val as ruval, enval from datatab 
   model 
   return updated rows
   dimension by (id, lang) measures (val, cast(null as varchar2(255)) enval) rules (
      enval[any, 'ru'] = val[cv(id), 'en']
)
order by id

   	ID	RUVAL	ENVAL
1	1	телефон	phone
2	2	хлеб	
3	3	ваза	vases