Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Group By
Message
De
16/05/2011 09:38:55
Mike Cole
Yellow Lab Technologies
Stanley, Iowa, États-Unis
 
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Titre:
Versions des environnements
SQL Server:
SQL Server 2005
Divers
Thread ID:
01395684
Message ID:
01510756
Vues:
59
Thanks again! I just used this again.

>There're many ways to get such result. Pick one that is most efficient for your data
>
>* 1
>SELECT * FROM mytable mt1 
>  WHERE StartDate = (SELECT MAX(StartDate) FROM mytable mt2 where mt2.fk = mt1.fk)
>
>* 2
>SELECT * FROM mytable mt1 
>  JOIN (SELECT fk, MAX(StartDate) AS MaxStartDate FROM mytable GROUP BY fk) dt1
>    ON dt1.fk = mt1.fk AND dt1.MaxStartDate = mt1.StartDate 
>
>* 3
>SELECT * FROM mytable mt1 
>  WHERE NOT EXISTS (SELECT 1 FROM mytable mt2 where mt2.fk = mt1.fk AND mt2.StartDate > mt1.StartDate)
>
>
>>I'm having a group by brain-fart. Somebody please point me in the right direction...
>>
>>I have the following data:
>>
>>ID|FK|Status|StartDate
>>1|1|Started|1/1/2008
>>2|1|Finished|1/2/2008
>>3|2|Started|3/2/2008
>>4|3|Started|5/1/2008
>>5|3|Finished|5/4/2008
>>
>>
>>This is a transactional flow of items through statuses. I would like to see what status each item is currently set to, which should be the greatest StartDate. In my example, I want to see:
>>
>>FK|Status
>>1|Finished
>>2|Started
>>3|Finished
>>
>>
>>Thanks in advance!
Very fitting: http://xkcd.com/386/
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform