我需要从同一表中的两个不同列中返回两个最大日期。我希望结果处于同一行。这是我的表数据:
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代码的最大日期= 30
只需使用 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上使用。
尝试以下:
SELECT * FROM my_table
WHERE sales_date = MAX(sales_date)
OR purchase_date = MAX(purchase_date)
ORDER BY MAX(sales_date), MAX(purhcase_date);
在单独的列中保持两个日期是可以的。
select concat(max(sales_date), ' ',max(purchase_date)) as newColumn
注意我如何在两个日期之间添加空间。