1

土曜日と日曜日を除いて毎日更新されるデータテーブルがあります。問題は、max(日付)とmax(日付)-1のデータを取得するときに発生します。

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

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

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

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

5 に答える 5

1

少なくとも 1 日経過した最新のレコードを選択できます。週末は特別なケースではありません。

于 2010-07-05T18:47:47.623 に答える
1

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

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

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

于 2010-07-05T18:50:09.133 に答える
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 日です。

于 2010-07-09T18:41:19.073 に答える
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)

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

于 2010-07-05T18:50:30.690 に答える