J'ai une table qui ressemble à quelque chose comme çacomte et regroupés par T-sql
CREATE TABLE MyTable(
[RecordID] [bigint] IDENTITY(1,1) NOT NULL,
[PortName] [nvarchar](50) NULL,
[ReceivedEvent] [datetime] NULL,
[SentEvent] [datetime] NULL,
);
Les données pourraient alors être
RecordID | PortName | ReceivedEvent | SentEvent
1 | Port1 | 2009-10-20 10:20:00 | NULL
2 | Port2 | NULL | 2009-10-20 10:10:00
3 | Port2 | NULL | 2009-10-20 10:02:00
4 | Port2 | NULL | 2009-10-20 11:00:00
J'ai besoin maintenant deux questions sur ce tableau:
1) Je dois obtenir le nombre de rangées groupées par port et date (pas l'heure). La date est cependant un paramètre dans la question (dans ce cas, il pourrait s'agir de "2009-10-20"). Je veux aussi la dernière « activité » dans chaque heure
NumberOfRows | PortName | Hour | LastActivityInHour
2 | Port2 | 10 | 2009-10-20 10:10:00
1 | Port2 | 11 | 2009-10-20 11:00:00
1 | Port1 | 10 | 2009-10-20 10:20:00
2) Je dois aussi une question de faire la même chose, mais regroupées par jour. Et le jour est comme je l'ai dit un paramètre entrant. Dans ce cas, il pourrait être « 2009-10-20 »
NumberOfRows | PortName | LastActivityInDay
3 | Port2 | 2009-10-20 11:00:00
1 | Port1 | 2009-10-20 10:20:00
Notez que j'ai modifié mon SQL considérablement. Vous pouvez utiliser le nouveau code au lieu de votre version modifiée. ;) – Tomalak
Oui ... Certainement. Merci. – Riri