2017-06-09 11 views
0

私は最初の3つの列が日、月、年である26列のテーブルを持っています。そして、私が見せなければならないいくつかの情報を持つ列の残りの部分。今私は月の最後の日に応じてレコードを取得する必要があります。 私はコードを書こうとしました。月の最終日に従ってレコードを選択してください

select * from subscription_stats where year * 10000 + month * 100 + day = LAST_DAY(CONCAT(year,'-',month,'-',day)) 

ただし、毎月最終日から記録を取得します。私はレコードで実際の最後の日を持っていないときは、このコードは動作しません。だからLAST_DAYの代わりに、その月のMAX日付のような機能がほしいです。どのように私はこの機能を実装することができます。

答えて

1

データの各月の最後の日付が必要です。このために:それは、このクエリははるかに簡単なことはないだろうが、

select s.* 
from subscription_stats s 
where s.day = (select max(s2.day) 
       from subscription_stats s2 
       where s2.year = s.year and s2.month = s.month 
      ); 

、あなたのテーブルに日付として日付を格納する必要があります。つまり、年/月/日の3つの別々の列ではなく、1つの日付です。

+0

Gordon Linoffさんに感謝します。できます。 – karan

+0

年の最後の日だけデータを取得する方法を教えてください。 @ karan。 – karan

+0

。 。サブクエリは月のみを比較し、月は比較しません。 –

関連する問題