Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2011, 03h18   #1
Invité de passage
 
Homme Dorice EGBOHO
Technicien réseaux et télécoms
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Dorice EGBOHO
Localisation : Bénin

Informations professionnelles :
Activité : Technicien réseaux et télécoms
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 7
Points : 1
Points : 1
Par défaut Soustraction de dates MSSQL SERVER 2008

Avec WINDOWS XP+MSSQL SERVER 2008
Je voudrais :

créer une database maintenance dans laquelle je vais créer une table coupures.

créer la procédure d'injection de nouvelles informations à partir d'un fichier excel 2007. Cette table sera actualisée manuellement chaque semaine à partir d'un fichier excel 2007 avec les champs suivants:
nomdusite: 1-15 lettres commençant par une majuscule
date_debut: 8/27/2011 21:40
date_fin:8/27/2011 21:41

ecrire une procédure stockée qui calcule pour chaque nomdusite du premier au dernier jour du mois passé la somme cumulée de (date_fin-date_debut) c'est-à-dire la durée totale d'isolement de chaque site.
dorice2010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 09h54   #2
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Je verrais un truc du genre :

Code :
1
2
3
SELECT nomdu site, month(date_debut), sum(date_fin - date_debut)
FROM matable
GROUP BY nomdu site, month(date_debut)
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 10h56   #3
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
SELECT nomdu site, month(date_debut), sum(date_fin - date_debut)
FROM matable
GROUP BY nomdu site, month(date_debut)
Je pense que si vous ne groupez par sur l'année vous allez vite avoir des soucis

Que voulez vous cumuler en terme de durée? le nombre de jour?
Citation:
ecrire une procédure stockée qui calcule pour chaque nomdusite du premier au dernier jour du mois passé la somme cumulée de (date_fin-date_debut) c'est-à-dire la durée totale d'isolement de chaque site.
Préférez un TRIGGER...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 14h59   #4
Invité de passage
 
Homme Dorice EGBOHO
Technicien réseaux et télécoms
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Dorice EGBOHO
Localisation : Bénin

Informations professionnelles :
Activité : Technicien réseaux et télécoms
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 7
Points : 1
Points : 1
somme cumulée en minutes de (date_fin-date_debut)
Pouvez-vous proposer le trigger?
dorice2010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 15h39   #5
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
somme cumulée en minutes de (date_fin-date_debut)
Alors ce sera d'avantage:

Code :
1
2
3
4
 
SELECT nomdu site, month(date_debut), sum(DATEDIFF(minute,date_fin, date_debut)) AS SUM_MINUTES
FROM matable
GROUP BY nomdu site, month(date_debut)
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 15h44   #6
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Le TRIGGER n'est en fait pas nécessaire ici...
Une simple vue suffit.

Code :
1
2
3
4
5
6
 
CREATE VIEW dbo.V_MATABLE_SOMME
 AS
SELECT nomdu site AS NOM_SITE, month(date_debut) AS MOIS, SUM(DATEDIFF(minute,date_fin, date_debut)) AS SUM_MINUTES
FROM dbo.matable
GROUP BY nomdu site, month(date_debut)
puis:
Code :
1
2
3
 
SELECT NOM_SITE,MOIS,SUM_MINUTES
FROM dbo.V_MATABLE_SOMME
Le volume de données est'il important?
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 21h06   #7
Invité de passage
 
Homme Dorice EGBOHO
Technicien réseaux et télécoms
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Dorice EGBOHO
Localisation : Bénin

Informations professionnelles :
Activité : Technicien réseaux et télécoms
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 7
Points : 1
Points : 1
Le volume de données est très important.Peut-on créer une autre table et ranger ce résultat là-dedans?
dorice2010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 04h51   #8
Invité de passage
 
Homme Dorice EGBOHO
Technicien réseaux et télécoms
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Dorice EGBOHO
Localisation : Bénin

Informations professionnelles :
Activité : Technicien réseaux et télécoms
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 7
Points : 1
Points : 1
Par défaut le type de la colonne date_debut

date_debut , dans le fichier excel est sous la forme 8/27/2011 21:33

Quel est le type de données à choisir pour cette colonne dans la table de la base de données afin d'y importer cette colonne à partir d'excel 2007?
dorice2010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 09h01   #9
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
Le volume de données est très important.Peut-on créer une autre table et ranger ce résultat là-dedans?
Il vous suffit de transformer votre vue en vue indéxée:
Code :
1
2
3
4
5
6
7
 
 
CREATE VIEW dbo.V_MATABLE_SOMME WITH SCHEMABINDING
 AS
SELECT nomdu site AS NOM_SITE, month(date_debut) AS MOIS, SUM(DATEDIFF(minute,date_fin, date_debut)) AS SUM_MINUTES
FROM dbo.matable
GROUP BY nomdu site, month(date_debut)
puis créez un index:

Code :
CREATE UNIQUE CLUSTERED INDEX IX_V_MATABLE_SOMME  ON V_MATABLE_SOMME (NOM_SITE,MOIS)
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 09h23   #10
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
Quel est le type de données à choisir pour cette colonne dans la table de la base de données afin d'y importer cette colonne à partir d'excel 2007?
Datetime bien entendu!
A vous au moment de l'import de spécifier sous quel forme vous envoyez vos dates à SQL SERVER!
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h00.


 
 
 
 
Partenaires

Hébergement Web