@StringBuilder : Je voudrais être sûr de bien avoir compris votre exemple :
pc : contient les machines
A chaque nouvel inventaire (chaque jour) et monitoring (chaque 15 min), un nouvel enregistrement est créé dans ces tables :
pc_survey : date de l'inventaire/monitoring
pc_disk et pc_volume : contient les disques et leur(s) volume(s)
pc_num_indicator : contient mes données "non connues pour l'instant" provenant des futurs scripts ?
Si oui, imaginons que nous souhaitons retrouver "tous l'historique des 30 derniers jours pour certaines machines" (simple supposition, mais qui devra peut-être être mise en place par la suite) la requête donnerai quelques chose comme :
1 2 3 4 5 6 7 8 9
|
select *
from pc
inner join pc_survey s on s.id = pc.last_survey_id
inner join pc_disk d on d.pc_survey_id = s.id
inner join pc_volume v on v.pc_disk_id = d.id
inner join pc_num_indicator n on n.pc_survey_id = s.id
where s.survey_date between dateadd(d, -30, SYSDATETIME()) and SYSDATETIME()
order by s.survey_date |
Si j'ai bien compris le contenu de pc_num_indicator, comme résultat nous aurons
- l'historique des 30 derniers jours de chaque machine
- et chaque historique s'affichera plusieurs fois (une fois pour chaque cle/valeur contenu dans pc_num_indicator)
Partager