Re: SQL Help
Date: Wed, 13 Feb 2008 17:10:58 +0100
Message-ID: <1202919058.3@user.newsoffice.de>
NN schrieb am 13.02.2008 in
<9754b4a7-a07a-4d69-ba90-e555dbae4612_at_v46g2000hsv.googlegroups.com>:
> I have a table on Oracle
> Product Store Day Promotion_Days
> 1 A 01/01/2008 2
> 2 A 01/05/2008 3
> 1 B 01/09/2008 3
> 5 D 01/11/2008 2
> 9 F 01/21/2008 1
> 1 A 01/31/2008 3
> Now I want to expand the table to create a view and include a column
> that will include the dates the promotion is valid. The logic to
> calculate that is Day + Promotion Days so if you take row 1 as in the
> above table you should read it as - For Product 1 in Store A the
> Promotion starts on 01/01/2008 and lasts for 2 days 1.e until end of
> 01/03/2008
> Now my final Table or View will look like
> Product Store Day Promotion_Days Promotion_Valid_On
> 1 A 01/01/2008 2 01/01/200/8
> 1 A 01/01/2008 2 01/02/2008
> 2 A 01/05/2008 3 01/05/2008
> 2 A 01/05/2008 3 01/06/2008
> 2 A 01/05/2008 3 01/07/2008
> 1 B 01/09/2008 3 01/09/2008
> 1 B 01/09/2008 3 01/10/2008
> 1 B 01/09/2008 3 01/11/2008
> 5 D 01/11/2008 2 01/11/2008
> 5 D 01/11/2008 2 01/12/2008
> 9 F 01/21/2008 1 01/21/2008
> 1 A 01/31/2008 3 01/31/2008
> 1 A 01/31/2008 3 02/01/2008
> 1 A 01/31/2008 3 02/02/2008
> I am stumped and any help will be appreciated. Thanks in advance.
Quick and dirty, something like
select
Product, Store, Day, Promotion_Days, Day+X.MyNumber Promotion_Valid_On from MyPromoTable join ( select rownum - 1 MyNumber from dictionary where rownum<1000 ) x on X.MyNumber<Promotion_Days order by 1,2,3,4,5
But I think it would be better to write a stored procedure
Andreas Mosmann
-- wenn email, dann AndreasMosmann <bei> web <punkt> deReceived on Wed Feb 13 2008 - 10:10:58 CST