Bonjour
Je cherche à créer une requête simple pour extraire le nombre de ligne par commande, la date/heure de saisie de la première ligne, la date heure de saisie de la dernière ligne et la durée de la saisie.
Pour cela j'ai à disposition une table de la forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE [SYSADM].[LIGNE_COMMANDE]( [id_commande] [varchar](32) NOT NULL, [date_enreg] [datetime] NULL )
Et les données
Voici le code que j'ai "pondu".... Des conseils ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 INSERT INTO [SYSADM].[LIGNE_COMMANDE] ([id_commande] ,[date_enreg]) VALUES ('COMMANDE 1','2012-02-05 09:13:02.993') INSERT INTO [SYSADM].[LIGNE_COMMANDE] ([id_commande] ,[date_enreg]) VALUES ('COMMANDE 1','2012-02-05 09:13:03.993') INSERT INTO [SYSADM].[LIGNE_COMMANDE] ([id_commande] ,[date_enreg]) VALUES ('COMMANDE 2','2012-02-05 09:13:01.643') INSERT INTO [SYSADM].[LIGNE_COMMANDE] ([id_commande] ,[date_enreg]) VALUES ('COMMANDE 1','2012-02-05 09:13:01.943') INSERT INTO [SYSADM].[LIGNE_COMMANDE] ([id_commande] ,[date_enreg]) VALUES ('COMMANDE 1','2012-02-05 09:13:06.653') INSERT INTO [SYSADM].[LIGNE_COMMANDE] ([id_commande] ,[date_enreg]) VALUES ('COMMANDE 3','2012-02-07 10:15:07.957') INSERT INTO [SYSADM].[LIGNE_COMMANDE] ([id_commande] ,[date_enreg]) VALUES ('COMMANDE 3','2012-02-07 09:13:02.993')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 WITH CTE_LIGNE(id,nb) as ( SELECT id_commande,COUNT(*) FROM SYSADM.LIGNE_COMMANDE GROUP BY id_commande ), CTE_CREATION( date_creat,id,nb) as ( SELECT min(date_enreg), id_commande,nb FROM SYSADM.LIGNE_COMMANDE WHERE id_commande=CTE_LIGNE.id_commande group by id_commande,nb ) select x.id_commande, datediff(second, max(date_enreg),CTE_CREATION.d_creat) as ecart, x.date_enreg as date_derniere_ligne, CTE_CREATION.date_creat as date_premiere_ligne, CTE_CREATION.nb as nb_ligne from SYSADM.LIGNE_COMMANDE x , CTE_CREATION where x.id_commande=CTE_CREATION.id group by x.id_commande,x.date_enreg,CTE_CREATION.date_creat,CTE_CREATION.nb
Partager