SQL:从两列中返回两个最大日期
问题描述:
我需要从同一个表中的两个不同列中返回两个最大日期。我想要结果在同一行。 这是我的表中的数据: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
答
试试这个:
SELECT * FROM my_table
WHERE sales_date = MAX(sales_date)
OR purchase_date = MAX(purchase_date)
ORDER BY MAX(sales_date), MAX(purhcase_date);
答
只需使用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会工作。
答
Keepeing两个日期中单独列是紫霞使用:
select concat(max(sales_date), ' ',max(purchase_date)) as newColumn
注意我是如何两个日期之间的增值空间。
+0
这完全不是OP想要的。 – Utsav
+0
我忘记把最大值放在colum之前。让我编辑,它会做的伎俩 –
我不知道为什么这是你想要的答案。你的结果中有两行,所以它有点违背了你的问题的第二部分。 – Tomer
MySQL或Oracle或SQLServer – Utsav