2015-12-02 44 views
-4

的例子的一排是這我需要返回具有最大的一個值和最小的另一個

20443204 0.00 10030089 4 

20443204 9.40 10030324 3 

20443204 13.00 10011672 2 

20443204 13.00 10030324 1 

結果應該是

20443204 13.00 10030324 1 

因此第4列必須是最小的但這並不像第二列那麼重要。所以拉動

20443204 13.00 10011672 2 

20443204 13.00 10030324 1 

後查詢應帶來正確的結果與第4列是1

我已經試過

select job_employee.job_no, MAX(job_employee.act_hours) hours , employee.emp_no, MIN(job_employee.seqno) from masdb.dbo.job_employee 
    join masdb.dbo.employee on employee.emp_no = job_employee.emp_no 
    where job_no = 20443204--example 
    group by 
    job_employee.job_no, employee.emp_no 
    order by seqno desc 
+0

試着玩類似的東西SELECT job_no, 小時, emp_no, seqno FROM tablename WHERE seqno =(SELECT MIN(seqno)FROM tablename); – Rose

+1

你的問題不是100%清楚的(例如,如果你有兩行具有相同的值,會發生什麼?可能嗎?)。你也應該顯示你到目前爲止嘗試過的。 –

+1

這將工作,但問題是,實際的表是巨大的。所以seqnos也是0。我可以嘗試將表從子表中作爲子查詢,並查看它是否一次抽取一個job_no進行比較。它可能運行速度超慢,但現在我只能想到了。 –

回答

1

您的查詢可能是soemthing這樣的:

;WITH MaxValue (H) AS 
     (SELECT MAX(Hour) FROM Table_2) 
     ,MinValue(S) AS 
     (SELECT MIN(segno) FROM Table_2 WHERE hour IN (SELECT H FROM MaxValue)) 
    SELECT * 
    FROM Table_2 
    WHERE segno IN (SELECT S FROM MinValue) AND job_no = 20443204 
+1

這將工作,但問題是,實際表是巨大的。所以seqnos也是0。我可以嘗試將表從子表中作爲子查詢,並查看它是否一次抽取一個job_no進行比較。它可能運行速度超慢,但現在我只能想到了。 –

+1

對於性能問題,我什麼都不能說,但是關於0值......如果他們有較低的小時值,那麼這些值不會被返回 – Simone

+0

我已經運行了它,並且它沒有爲工作號碼做任何事情,因爲有多個值工作號碼,我只是使用一個,因爲它是整個圖片的一個很好的例子,但如果它有幫助,我可以展示多個工作。 –

相關問題