You are here: Re: How can I get all records for both tables with the latest begin date if exists? « MsSQL Server « IT news, forums, messages
Re: How can I get all records for both tables with the latest begin date if exists?

Posted by ZeldorBlat on 10/02/27 11:50

TGEAR wrote:
> thank you, I also need to show the price value and I added the column
> in your stmt, but i think i did wrong and I got this message "Column
> 'ih.price' is invalid in the select list because it is not contained in
> either an aggregate function or the GROUP BY clause."
>
> ZeldorBlat wrote:
> > TGEAR wrote:
> > > Itemlookup table
> > > Field names : index_id (primary key), itemno, description.
> > > It has a child table, which is ItemPriceHistory table
> > > The relationship to the child table is one (parent table)-to-many
> > > (child table). - It is possible to have no child record for some rows
> > > in the parent table.
> > >
> > > ItemPriceHistory table
> > > Field names: index_id (primary key), itemlookupID (foreign key of the
> > > Itemlookup table), date begin, price
> > > It is a child table of the itemlookup table.
> > >
> > > How can I get all records for both tables with the latest begin date if
> > > exists?
> > > I also need to show the records in the parent table if there is no
> > > related record in the child table.
> > >
> > > Please help
> >
> > select i.index_id, i.itemno, i.description, x.lastBeginDate
> > from Itemlookup i
> > left outer join (select ih.itemlookupID, max(ih.beginDate)
> > lastBeginDate
> > from ItemPriceHistory ih
> > group by ih.itemlookupID) x
> > on i.index_id = x.itemlookupID

You can do the following, but it won't work (correctly) if the most
recent beginDate occurs twice for a single item. It would be easier to
simply store the current price of the item in the ItemLookup table.

select i.index_id, i.itemno, i.description, ih2.price, x.lastBeginDate
from Itemlookup i
left outer join (select ih.itemlookupID, max(ih.beginDate)
lastBeginDate
from ItemPriceHistory ih
group by ih.itemlookupID) x
on i.index_id = x.itemlookupID
left outer join ItemPriceHistory ih2
on (x.itemlookupID = ih2.itemlookupID
and x.lastBeginDate = ih2.beginDate)

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация