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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 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 ?
Partager