1


0

最大日付と前の日付を選択します

土曜日と日曜日を除く毎日更新されるデータテーブルがあります。 問題は、最大(日付)および最大(日付)-1でデータを取得するときに発生する

しかし、max(date)-1が存在しない場合、今日(月曜日)と昨日(日曜日)のデータを取得しようとすると失敗します。

データは土曜日と日曜日に更新できますが、為替レートなので更新します。 金曜日、土曜日、日曜日に同じ為替レートが適用されますか。

これはこの方法で問題を解決する1つの方法ですが、より良い方法があります

string weekend = DateTime.Now.DayOfWeek.ToString();
if (weekend == "Monday")
{
select ***** where max(date)-3 from *****
}

4 Answer


1


少なくとも1日前の最新のレコードを選択できます。 それから週末は特別な場合ではありません。


1


データセットで2番目に高い日付を効率的に見つけようとしています。

データ内で最高の日付を見つけます。 これより小さい値を見つけ、結果を1に制限すると、データセットに前日があります。

他の方法は、料金が更新されない他の日に失敗します。 クリスマス。


0


これは、任意のtarget_dateでも機能する他のオプションです。

日付ごとに1つのレコードしかない場合、

SELECT * FROM table WHERE date<=target_date ORDER BY date DESC LIMIT 2

日付ごとに多くのレコードがある場合、

SELECT * FROM table WHERE date IN (SELECT DISTINCT date FROM table WHERE date<=target_date ORDER BY date DESC LIMIT 2)

もちろん、データベースの日付/時刻関数を使用して、月曜日をチェックすることもできます。


0


うーん、文字列の詳細が必要な場合があります

SQL文字列は

SELECT m.Navn、m.Beskrivelse、p_idag.Points AS Points_idag、p_igaar.Points AS Points_igaar FROM medlem m LEFT JOIN(SELECT * FROM point WHERE Datoen = '06 -09-2010 ')AS p_idag ON m.Navn = p_idag。 Navn LEFT JOIN(SELECT * FROM point WHERE Datoen = '06 -08-2010 ')AS p_igaar ON m.Navn = p_igaar.Navn ORDER BY m.Navn;

最初の日付はユーザーによって選択され、その次の日付は-1日または-3日