2017-05-29 101 views
-2

我需要從同一個表中的兩個不同列中返回兩個最大日期。我想要結果在同一行。 這是我的表中的數據:SQL:從兩列中返回兩個最大日期

If i have this   
store item tran-code date 
1788 2004635 1  17.05.27 
1788 2004635 2  17.05.27 
1788 2004635 30  17.05.26 
1788 2004635 2  17.05.21 
1788 2004635 1  17.05.21 
1788 2004635 2  17.05.20 
1788 2004635 1  17.05.20 

,我想這...

store item tran-code date 
1788 2004635 1  17.05.27 
1788 2004635 30  17.05.26 

,但如果你可以讓我回到這一點,這將是完美的

store item  date_1 date_30 
1788 2004635 17.05.27 17.05.26 

其中DATE_1是tran-code的最大日期= 1和 date_30是tran-code的最大日期= 30

+0

我不知道爲什麼這是你想要的答案。你的結果中有兩行,所以它有點違背了你的問題的第二部分。 – Tomer

+0

MySQL或Oracle或SQLServer – Utsav

回答

0

試試這個:

SELECT * FROM my_table 
WHERE sales_date = MAX(sales_date) 
OR purchase_date = MAX(purchase_date) 
ORDER BY MAX(sales_date), MAX(purhcase_date); 
1

只需使用group by

select store,item, 
max(sales_date) as sales_date , 
max(purchase_date) as purchase_date 
from your_table 
group by store,item; 

Rextester Demo for SQL Sever但是這是一個通用的查詢,並在所有RDBMS會工作。

0

Keepeing兩個日期中單獨列是紫霞使用:

select concat(max(sales_date), ' ',max(purchase_date)) as newColumn 

注意我是如何兩個日期之間的增值空間。

+0

這完全不是OP想要的。 – Utsav

+0

我忘記把最大值放在colum之前。讓我編輯,它會做的伎倆 –