我需要从同一个表中的两个不同列返回两个最大日期。我希望结果在同一行。 这是我的表数据:
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 :(得分: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。
答案 1 :(得分: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);
答案 2 :(得分:0)
在单独的列中保持两个日期很好。只需使用它:
select concat(max(sales_date), ' ',max(purchase_date)) as newColumn
注意我是如何在两个日期之间添加空格的。