簡體   English   中英

將MAX和MIN值相加在同一列中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM