私は自分のウェブサイトの広告を受け入れるようにウェブサイトをデザインしています。私のウェブサイトは有効な広告(確認済みでクレジットが残っている広告)のリストを取得し、それらを表示します。私の広告テーブルには、広告を検証する次のフィールドがあります。
- TotalDaysToShowint'広告が表示される合計日数
- StartDate datetime
- 検証済みビット
- LastShowed日時
たとえば、次のようなクエリを使用して、4つの広告を表示したいと思います。
SELECT TOP 4 ImageId,
Url
FROM ads
WHERE verified = 1 AND ..........
ORDER BY LastShowed ASC
ここでの問題は、TotalDaysToShowがすべての広告で同じである場合、単純に次のように使用できることです。
declare @d= dateadd(day, @TotalDaysToShow, starttime)
そしてそれを次のように使用します:
SELECT TOP 4 ImageId,
Url
FROM ads
WHERE verified = 1
AND @d > Getdate()
ORDER BY LastShowed ASC
それらのそれぞれについてそれを計算することは可能ですか?
SELECT TOP 4 ImageId,
Url
FROM ads
WHERE verified = 1
AND Dateadd(day, TotalDaysToShow, startdate) > Getdate()
ORDER BY LastShowed ASC
前もって感謝します