这是我的以下代码。我试图让它读取这两个语句,然后检查查询2的输出是否在+或-阈值限制内。阈值限制是根据查询一计算得出的。我不确定为什么会发生此错误,因为$wo
保留了该值,然后我正在检查是否在阈值之内。
$dataSource="###"
$database ="###"
$location = '###'
$limit = '1000'
$connectionString = "Server=$dataSource;Database=$database;Integrated Security=True;"
$averageYearCountQuery = "SELECT AVG(Records) FROM (SELECT COUNT(*) as Records, WEEK_END_DATE FROM [###].[dbo].[TIM####] D INNER JOIN Tim####ek W ON D.T####EK_ID = W.TI####ID INNER JOIN E#### E on E.E####_## = W.EMPLOY_REF WHERE LOCATION LIKE '###%' AND WEEK_END_DATE Between DATEADD(year,-1,GETDATE())AND GETDATE() GROUP BY ###) a"
$averageWeekCountQuery = "SELECT TOP 1 COUNT(*) AS R##ds, W######TE FROM [###].[dbo].[TIMESHEET_DAY] D INNER JOIN Ti###k W ON D.TIMESHEET_WEEK_ID = W.TIMESHEET_WEEK_ID INNER JOIN EMPLOYEE E ON E.EMPLOY_REF = W.EMPLOY_REF WHERE LOCATION LIKE '####e%' AND WEEK_END_DATE BETWEEN DATEADD(year,-1,GETDATE())AND GETDATE() GROUP BY ### ORDER BY ### ASC"
#Connect to the database
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString)
$connection.Open()
$commandYearOutput = $connection.CreateCommand()
$commandYearOutput.CommandText = $averageYearCountQuery
$yearReader = $commandYearOutput.ExecuteReader()
$yo = New-Object System.Data.DataTable
$yo.Load($yearReader)
$commandWeekOutput = $connection.CreateCommand()
$commandWeekOutput.CommandText = $averageWeekCountQuery
$weekReader = $commandWeekOutput.ExecuteReader()
$wo = New-Object System.Data.DataTable
$wo.Load($weekReader)
$conn.Close()
$yo
$wo
#Check if the right quantity of data is coming into the system
$max = $wo + $limit
$min = $wo - $limit
if ($wo -lt $max -and $wo -gt $min) {
Write-Output "successmessage"
}