Données les plus recentes

bbertt Messages postés 3 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 10 juin 2009 - 10 juin 2009 à 16:40
EricSQL Messages postés 33 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 24 février 2011 - 20 juin 2009 à 13:00
Avant toutes choses, Bonjour a tous

Je tiens à vous remercier car le forum m'a permis de répondre à une grande quantité de questions durant mon stage.
Cependant, aujourd'hui je me vois obliger de demander encore un plus d'aide de votre part :

Serveur : SQL Server 2000

Dans le cadre de mon stage j'aimerais pouvoir obtenir les données comme ceci.

J'ai donc une base où j'ai les éléments suivant

Code     |  Temps                          |  Mois  | Année
    1        |     100 h                        |    5      |   2009
    1        |     400 h                        |    6      |   2009
    2        |     800 h                        |    5      |   2009
    2        |     200 h                        |    6      |   2009
    2        |     500 h                        |    7      |   2009

Je voudrais obtenir la liste suivante (le but étant d'exploiter les données dans un tableau croisé dynamique)

Affaire    |     Temps      |  Mois   | Année
    1        |     400 h        |    6       |   2009
    2        |     500 h        |    7       |   2009

J'ai testé differentes choses , mais aucunes ne s'est avérée concluante

J'espere
que ce que j'ai explicité ma demande au mieux, et qu'il est possible de
le faire directement en sql. Mais je suis avide de toutes les
proposition que vous pourrez me faire.

Merci d'avance de votre attention, et encore plus pour ceux qui me répondront

1 réponse

EricSQL Messages postés 33 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 24 février 2011
20 juin 2009 à 13:00
Bonjour,
ne connaissant pas beaucoup SQL Server, je ne peux pas te donner une réponse directe, mais voici comment tu peux essayer de faire si la volumétrie n'est pas importante :

Une sous-requête qui remonte la dernière date par affaire,

une requête principale qui récupère les données pour cette affaire et cette date :

Select *

From Table

Where (Code, Année * 100 + Mois) in (

Select Code, max(Année * 100 + Mois) as DerniereDate

From Table

Group by Code

)

;

/Eric
0
Rejoignez-nous