Bonjour à toutes et à tous,
Je vais tenter d'expliquer mon petit problème du mieux possible.
Dans une base de données SQL se trouve 3 tables.
- Table statistique
- Table Host
- Table server
Je dois alimenter la table Statistique en debut de mois avec des infos de la table Host.
Voici un debut de requête
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
Le resultat est :
Id | Host | NbrSecProd | Mois | Annee | SumDelay | SumIncident | MTBF | MTTR | Dispo
1..|.host1|...2678400..|..1...|..2007.|..0.......|......0......|..0...|...0..|.100..
2..|.host2|...2678400..|..1...|..2007.|..0.......|......0......|..0...|...0..|.100..
3..|.host3|...2678400..|..1...|..2007.|..0.......|......0......|..0...|...0..|.100..
4..|.host4|...2678400..|..1...|..2007.|..0.......|......0......|..0...|...0..|.100..
5..|.host5|...2678400..|..1...|..2007.|..0.......|......0......|..0...|...0..|.100..
La colonne AS NbrSecProd doit être multiplié par le nombre de serveurs faisant parti du Host.
Pour les connaitres, j’utilise cette requête
SELECT COUNT(*) AS Expr1
FROM Server INNER JOIN ServerGroup ON Server.GroupId = ServerGroup.GroupId
WHERE (Server.OutProdState = 0)
GROUP BY Server.GroupId
Elle affiche
| Expr 1 |
|...28....|
|...2.....|
|...5.....|
|...6.....|
|...4.....|
|...21...|
|...6.....|
|...9.....|
|...2.....|
|...7.....|
|...28...|
|...13...|
|...16...|
|...31...|
|...13...|
Le soucis est que j’ai un peu de mal à ajouter le multiplicateur à ma requête INSERT.
Une âme charitable pourrait peut-etre m'eclairer ? :)
Configuration: Windows XP
Firefox 1.5.0.7