Reply to Re: Selecting last date

Your name:

Reply:


Posted by ice on 12/27/06 12:44

Erland Sommarskog wrote:
> ice (iceruam@gmail.com) writes:
> > I have a couple of tables. The client tables and the contacted
> > tables.
> > I am not sure how to start on this, what I need is a way to query all
> > my clients then show any client that the last visit and or called day
> > is greater than 30 days.
> > Now it gets confusing, Suppose the client was visited more than 30 days
> > ago but was called only 10 days ago, I really would like to have this
> > appear on the same query.
> >
> > So the report would look similar to this below.
> > Visit Date Called Date
> > ClientA 2006-11-02 2006-12-16
> > ClientB 2006-12-17 2006-10-30
> > ClientC 2006-10-15 2006-10-16
> > ClientD
> >
> > Fields (Simplified)
> > Clients: Name, Address, Phone.
> > Contacted: Name, Date, Visit, Call.
> > I need to query all l names, but I only need the last visit and last
> > phone call. Then determine if either date is greater than 30 days if
> > so, display the last date of each type of contact. And if there is
> > nothing for the client in the contacted table this needs to show also,
> > ClientD.
>
> It's a good recommendation for this type of queries to post CREATE
> TABLE statements for your tables, and INSERT statements with sample
> data, and the desired output given the sample. That makes it easy to
> copy and paste to develop a tested solution. The sample data can also
> help to clarify the narrative. The below is thus untested and based
> on my understanding of your description.
>
> SELECT Cl.Name, V.Date, C.Date
> FROM Clients Cl
> LEFT JOIN (SELECT Name, Date = MAX(Date)
> FROM Contacted
> WHERE Visit = 1
> GROUP BY Contaced) AS V ON V.Name = Cl.Name
> LEFT JOIN (SELECT Name, Date = MAX(Date)
> FROM Contacted
> WHERE Call = 1
> GROUP BY Contaced) AS C ON C.Name = Cl.Name
> WHERE V.Date < datedadd(day, -30, getdate()) OR V.Date IS NULL
>
> The things in parens are derived tables. Conceptually a temp table
> in the query, but not materialised, and SQL Server may recast computation
> order, as long as the result is the same. This makes derived tables a
> very powerful features to implement complex queries.
>
>
> --
> Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se
>
> Books Online for SQL Server 2005 at
> http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
> Books Online for SQL Server 2000 at
> http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx


THANKS, I will give this a go.
ICE

[Back to original 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

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