特定の時刻までに特定の時刻までに記録されたデータをすべて記録する 'Cashup_Till'テーブルがあります。各会場には指定された番号 ' Till_No '。私はそれぞれの番号まで前の2日間のエントリーを取得する必要があります。それぞれが個別に耕しために私はSQL Get Top 2各列の値ごとの結果
SELECT TOP 2 T.* FROM CashUp_Till T
WHERE T.Till_No = (Enter Till Number Here)
ORDER BY T.Till_Id DESC
いくつかの会場では、私は1回の呼び出しですべてのティルを行う必要があるので、理想的には20〜30のティルを持っている...これを行うことができます。私は数字までのユーザー定義のテーブル型を渡すことができますし、サブクエリでそれらを選択します。しかし、それは私のSQL知識が私を必要とする限り、誰にも解決策がありますか?
SELECT T.*
FROM (SELECT T.*,
ROW_NUMBER() OVER (PARTITION BY Till_No ORDER BY Till_Id DESC) as seqnum
FROM CashUp_Till T
) T
WHERE seqnum <= 2;
これは私が質問で提案されたと信じて一日あたり1つのレコードを、そこにあることを前提としています
を? –
@TimBiegeleisenここでは、単純な例として、会場/日の列は表示していません。where句に含めるSite_Day_Idがあります。 –
前の2日間はどういう意味ですか? 1日に複数のレコードがありますか?最新の日にレコードがない場合はどうなりますか? –