最初の行からすべての行を選択し、条件を満たす行、最後の行まで、別の条件を満たす必要があります。 2番目の条件を満たす行がない場合は、残りの行がすべて必要です。私はこのクエリを作ってみた:条件を満たす最初と最後の行の間のすべてのレコードを取得します。
SELECT * FROM History WHERE ID BETWEEN
(
SELECT TOP 1 ID FROM History WHERE
{FirstCondition} AND {GeneralCondition} ORDER BY ID ASC
) AND (
SELECT TOP 1 ID FROM History WHERE
{SecondCondition} AND {GeneralCondition} ORDER BY ID DESC
) AND {GeneralCondition}
Hovewerが、それは何も選択しない、第二の条件は、任意の行によって満たされていません。私の質問はこれも単一のクエリで可能ですか?または、アプリケーション側でさらに並べ替えを行う必要がありますか?
例: はUserID=6
までUserID=3
(FirstCondition)とstrating、OrderID=4
(GeneralCondition)のためにすべての行を選択する必要があり(SecondCondition)
表
Case 1: Case 2:
ID|OrderID|UserID ID|OrderID|UserID
----------------- -----------------
1 | 4 | 4 1 | 4 | 4
2 | 4 | 3 2 | 4 | 3
3 | 4 | 4 3 | 4 | 4
4 | 4 | 6 4 | 4 | 7
5 | 4 | 4 5 | 4 | 4
6 | 5 | 4 6 | 5 | 4
7 | 5 | 4 7 | 5 | 4
所望の出力:
Case 1: Case 2:
ID|OrderID|UserID ID|OrderID|UserID
----------------- -----------------
2 | 4 | 3 2 | 4 | 3
3 | 4 | 4 3 | 4 | 4
4 | 4 | 6 4 | 4 | 7
5 | 4 | 4
を有することができ、最小限の例として、テーブルとしてのサンプルデータを示しており、予想される出力してください。 –
subselectを単独で実行していますか?彼らは何を返しますか? – RealCheeseLord
secondConditionとは何ですか?あなたはそれに一致するデータを持っていますか? – FJT