2017-05-29 5 views
-2

同じテーブル内の2つの異なるカラムから2つの最大日付を返す必要があります。私はその結果を同じ行にしたい。 これは私のテーブルデータである:SQL:2つのカラムから2つの最大日付を返します

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

なぜこれがあなたが望む答えなのか分かりません。あなたの結果に2つの線があるので、あなたの質問の第2部分とちょっと矛盾します。 – 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二つの日付がfine.Justがこれを使用している:私は2つの日付の間のスペースを追加する方法

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

注意してください。

+0

これはOPが望むものではありません。 – Utsav

+0

私は行列の前にMaxを置くのを忘れました。編集してください。 –

関連する問題