私はMinDateとMaxDateの間の行を取得するストアドプロシージャを持っています。日付間の行の値を取得する方法は?
ALTER PROCEDURE [dbo].[GetFilteredDomainDetails]
@Id bigint,
@From datetime2,
@To datetime2
AS
BEGIN
SET NOCOUNT ON;
SELECT
DomainId, [Date], DomainName,
ServerPerformance, DatabasePerformance, SoldTickets
FROM
DomainDetailDataHistory
WHERE
DomainId = @Id AND Date >= @From AND date <[email protected]
ORDER BY
date ASC
END
事は、私が行の間のチケット販売量を算出していますということです。
for (int i = databaseData.Count() - 1; i > 0; i--)
{
long soldtickets = databaseData[i].SoldTickets - databaseData[i - 1].SoldTickets;
databaseData[i].SoldTickets = soldtickets < 0 ? databaseData[i].SoldTickets : soldtickets;
}
問題:
私が持っているが、私はMinDateプロパティの下にある1つの余分の行が必要なことです正しいチケットの計算を得るために。
SELECT TOP 1
DomainId, [Date], DomainName,
ServerPerformance, DatabasePerformance, SoldTickets
FROM
DomainDetailDataHistory
WHERE
[Date] > @From AND DomainId = @Id
ORDER BY
date ASC
を、サーバー上の二次select文としてこれを受け取る:
私はこれを行うことができます。
しかし私はそれが私が探しているものを達成するためのきれいな方法ではないと感じ、より良い方法があれば私は好奇心が強いのですか?
サンプルデータと望ましい結果は、あなたが何をしようとしているかを説明するのに役立つと思います。 –
私は自分自身を言葉だけで明確にすることができたと感じて以来、私はあまりデータを入れていませんでした。これの単純さは、私が最小と最大の日付の間に行を入れたいだけでなく、1つの行(最新)が私の考えを下回ることです。それを達成するための実際の方法は別の問題です。 データも追加します。 – ThunD3eR