Обсуждение: Help with a select statement design

Поиск
Список
Период
Сортировка

Help with a select statement design

От
JORGE MALDONADO
Дата:
I have a record with the following fields:

id1, id2, id3, id4, price1, price2, price3, price4

I would like to write a SELECT statement in order to get 4 records:

id, price (record that comes from id1 and price 1)
id, price (record that comes from id2 and price 2)
id, price (record that comes from id3 and price 3)
id, price (record that comes from id4 and price 4)

I will very much appreciate any suggestion.

Respectfully,
Jorge Maldonado

Re: Help with a select statement design

От
Andreas Kretschmer
Дата:

JORGE MALDONADO <jorgemal1960@gmail.com> hat am 24. Dezember 2012 um 17:30
geschrieben:
> I have a record with the following fields:
>
> id1, id2, id3, id4, price1, price2, price3, price4
>
> I would like to write a SELECT statement in order to get 4 records:
>
> id, price (record that comes from id1 and price 1)
> id, price (record that comes from id2 and price 2)
> id, price (record that comes from id3 and price 3)
> id, price (record that comes from id4 and price 4)
>
> I will very much appreciate any suggestion.
>
> Respectfully,
> Jorge Maldonado

select id1 as id, price1 as price
union all
select id2, price2
union all
select id3, ... you got it?


Andreas



Re: Help with a select statement design

От
Franz Timmer
Дата:
hello,


(         select 'A' as x, id, price from tab where id = 'value'
union all select 'B' as x, id, ...
union all select 'C' as x, id, ...
union all select 'D' as x, id, price from tab where id = 'value' )

generate a list like
X   id  price
A   1   10
B   2   20
C   3   30
D   4   40

select
max (case when X = 'A' then id   end ) as id_a,
max (case when X = 'A' then price end ) as price_a,
max (case when X = 'B' then id    end ) as id_b,
max (case when X = 'B' then price end ) as price_b,
max (case when X = 'C' then id    end ) as id_c,
max (case when X = 'C' then price end ) as price_c,
max (case when X = 'D' then id    end ) as id_d,
max (case when X = 'D' then price end ) as price_d
from ( table_or_select_from_above )

--- not testet



On 24.12.2012 17:30, JORGE MALDONADO wrote:
> I have a record with the following fields:
> 
> id1, id2, id3, id4, price1, price2, price3, price4
> 
> I would like to write a SELECT statement in order to get 4 records:
> 
> id, price (record that comes from id1 and price 1)
> id, price (record that comes from id2 and price 2)
> id, price (record that comes from id3 and price 3)
> id, price (record that comes from id4 and price 4)
> 
> I will very much appreciate any suggestion.
> 
> Respectfully,
> Jorge Maldonado