|
|
|
|
INSERT INTO StatGroup (GroupId, GroupName, NbrSecProd, Mois, Annee, SumDelay, SumIncident, MTBF, MTTF, Dispo) SELECT GroupId, GroupName, DATEDIFF(second,SUBSTRING(CONVERT(varchar(8), GETDATE(), 112), 1, 6) + '01', SUBSTRING (CONVERT(varchar(8), DATEADD(M, 1, GETDATE()), 112), 1, 6) + '01') AS NbrSecProd, DATEPART(M, GETDATE()) AS Mois, DATEPART (YYYY, GETDATE()) AS Annee, 0 AS SumDelay, 0 AS SumIncident, 0 AS MTBF, 0 AS MTTF, 100 AS Dispo FROM ServerGroup
SELECT COUNT(*) AS Expr1 FROM Server INNER JOIN ServerGroup ON Server.GroupId = ServerGroup.GroupId WHERE (Server.OutProdState = 0) GROUP BY Server.GroupId
Configuration: Windows XP Firefox 1.5.0.7
Bonjour,
Quel SGBD utilises-tu ? Si tu es sous SQL Server, tu peux par exemple passer par une fonction : CREATE FUNCTION getDureeProd(@groupId int, @nbSec varchar(8)) RETURNS varchar(10) AS BEGIN DECLARE @nbServers int DECLARE @nbSecInt int SELECT @nbSecInt = CONVERT(int, @nbSec) SELECT @nbServers = count(*) FROM Server INNER JOIN ServerGroup ON Server.GroupId = ServerGroup.GroupId WHERE (Server.OutProdState = 0) GROUP BY Server.GroupId RETURN Convert(varchar(10), @nbServers*@nbSecInt) ENDJe pense que tu peux en comprendre le principe assez simplement. Ta requête SQL devient alors : INSERT INTO StatGroup (GroupId, GroupName, NbrSecProd, Mois, Annee, SumDelay, SumIncident, MTBF, MTTF, Dispo) SELECT GroupId, GroupName, getDureeProd(GroupId, DATEDIFF(second,SUBSTRING(CONVERT(varchar(8), GETDATE(), 112), 1, 6) + '01', SUBSTRING (CONVERT(varchar(8), DATEADD(M, 1, GETDATE()), 112), 1, 6) + '01')) AS NbrSecProd, DATEPART(M, GETDATE()) AS Mois, DATEPART (YYYY, GETDATE()) AS Annee, 0 AS SumDelay, 0 AS SumIncident, 0 AS MTBF, 0 AS MTTF, 100 AS Dispo FROM ServerGroupPar contre, si ton SGBD ne supporte pas les fonctions (ou autre choses équivalentes), tu peux tenter une vue, qui te donne d'un côté le groupID, de l'autre le nombre de serveurs, et faire une jointure sur la vue en question... |
Merci bcp pour ton aide Reivax, mais j'ai finis par trouver une solution qui fonctionne.
Je suis sur SQL Server et je n'ai que de vagues notions (les fonctions de bases). J'ai tenté ta solution mais le resultat de NbrSecProd etait tjs le même pour tous les Host (mêmes ceux n'ayant aucun serveur). Donc je pense que je n'ai pas vraiment tout capté de ta solution. ^^ Au final j'ai reussi à faire ça : INSERT INTO StatGroup
(GroupId, GroupName, NbrSecProd, Mois, Annee, SumDelay, SumIncident, MTBF, MTTF, Dispo)
SELECT ServerGroup.GroupId, ServerGroup.GroupName, DATEDIFF(second, SUBSTRING(CONVERT(varchar(8), GETDATE(), 112), 1, 6) + '01',
SUBSTRING(CONVERT(varchar(8), DATEADD(M, 1, GETDATE()), 112), 1, 6) + '01') * COUNT(Server.GroupId) AS NbrSecProd, DATEPART(M, GETDATE())
AS Mois, DATEPART(YYYY, GETDATE()) AS Annee, 0 AS SumDelay, 0 AS SumIncident, 0 AS MTBF, 0 AS MTTF, 100 AS Dispo
FROM ServerGroup INNER JOIN
Server ON ServerGroup.GroupId = Server.GroupId
WHERE (Server.OutProdState = 0)
GROUP BY ServerGroup.GroupId, ServerGroup.GroupName
Elle tient en une requête et fait exactement ce que je voulais obtenir. Je vais ainsi pouvoir la placer dans une fonction d'une page asp. :) |
| 20/12 10h00 | [CCM] Insérer une image dans une discussion | CommentçaMarche |
| 03/01 11h08 | [Windows] Exécution automatique à l'insertion d'un CD / clé USB | Windows |
| 16/01 12h15 | [Outlook Express] Créer papier à lettre / Insérer image de fond | Microsoft Outlook |
| 24/01 23h01 | Disk boot failure - Insert system disk and press Enter | Matériel |
| 15/01 22h47 | [CommentçaMarche] Insérer une image dans la FAQ | FAQ |
| 23/05 11h39 | [SQL REQUETE] Inserer des variable dans un wh | 0 |
| 31/01 10h50 | [SQL]Problème de requête insert | 2 |
| 15/08 02h37 | [SQL] Problème INSERT clause WHERE | 20 |
| 16/06 21h12 | [PHP - SQL] requete sql et variable php | 2 |
![]() | WAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de... | Catégorie: Serveurs Licence: Freeware/gratuit |
![]() | AVS Disc Creator - Avec AVS DiscCreator vous pouvez rapidement graver vos données sur CD/DVD et Blu-ray disc. <h2>Fonctionnalités</h2> ... | Catégorie: Gravure Licence: Freeware/gratuit |
![]() | Visual Basic 6 Runtime (VB6 DLL) - Le Runtime Visual Basic 6 contient l'ensemble des librairies (DLL) nécessaires pour exécuter des programmes écrits en... | Catégorie: Librairies (DLL) Licence: Freeware/gratuit |
![]() | MySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. | Catégorie: Bases de données Licence: Open Source |
![]() | Pioneer SW110SQL Natural Wood | Catégorie: Enceintes |