[英]Summing MAX and MIN values in the same column
我試圖提取工資單數據,需要在[PAYRATE]列中添加最大值和最小值以得出平均費率。 該表可以有多行支票,具有相同的工資率,因此AVG [PAYRATE]將無效。 我嘗試了下面的代碼,但它失敗了。 可以這樣做嗎?
(SELECT SUM((MAX(payrate))+(MIN(payrate)))
FROM PAYCHECKS
WHERE PAYROLCD in ('01', '02')
AND PYRLRTYP = 1
AND EMPLOYID = A.EMPLOYID
AND PYADNMBR = A.PYADNMBR) AS PAYRATE
無法對包含聚合或子查詢的表達式執行聚合函數。
刪除外部sum
:
SELECT (MAX(payrate)+MIN(payrate))/2 AS PAYRATE
FROM PAYCHECKS
WHERE PAYROLCD in ('01', '02')
AND PYRLRTYP = 1
AND EMPLOYID = A.EMPLOYID
AND PYADNMBR = A.PYADNMBR
我為平均值添加了一個/2
。
您需要對最小值和最大值進行平均值。 此外,您需要除以小數2以獲得准確的結果,否則如果除以2,則十進制結果將被截斷。 您可以根據下面的需要改變比例和精度。
SELECT ((MIN(payrate)+MAX(payrate))/CAST(2 AS DECIMAL (9,2)) AS PAYRATE
FROM PAYCHECKS
WHERE PAYROLCD in ('01', '02')
AND PYRLRTYP = 1
AND EMPLOYID = A.EMPLOYID
AND PYADNMBR = A.PYADNMBR
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.