私は要件を満たしていますが、コードの一部を試しましたが、ある程度は機能しますが、自分の要件に従ってソートできません。特定の値に基づいてデータをソートSQL
要件
タスクごとにグループ化されて、私はいくつかの行を持っている場合はここ
Name RowToBeSorted
task1 1
task1 1
task1 1
task2 3
task2 3
task2 3
task3 2
task3 2
task3 2
task4 NULL
task4 NULL
task4 NULL
は私の要件である、私は上記示した列番号に基づいてデータのグループを表示する必要がありソート順Ex。列の値は、列の値が、データのセットが5ソート
GROUPBY位置に配置されるべきである場合、データは、8ソートに
GROUPBY位置に配置されるべきであること次に言えば。今度はテーブル構造
タスク3の列の値がの場合、そのグループデータは他の順序にかかわらず2番目の位置にソートされるはずです。
task1 1
task1 1
task1 1
task3 2 <-- positioned at 2nd group by
task3 2 <-- positioned at 2nd group by
task3 2 <-- positioned at 2nd group by
task2 3
task2 3
task2 3
task4 NULL
task4 NULL
task4 NULL
私は、列がトップに来ると良くないデータの位置を変更する0またはNULL値を持つことができるときしかし、問題がある列の値に基づいてデータをソートしています。
同じクエリから取得したデータは、Crystalレポートにさらに反映されます。
PSは
データの2つの以上のセットが、それは私がすでに世話をしてきた名前に基づいてソートされなければならない同じ種類の番号を持っている場合、私はちょうど、それぞれの値に基づいて行を配置する必要があります列にもNULLが含まれています。
私が十分明確であれば教えてください。
UPDATE 1:
私が試したし、ここで私は取得していますものです。私はまだ最初にNULLが表示され、私に間違った位置を与える下の他のデータを押して、私は何か間違っている。
SELECT
-- few other columns
SUBSTRING(UDF.[R/L], PATINDEX('%[0-9]%', UDF.[R/L]), LEN(UDF.[R/L])) RL_Num
,QEmployeeAll.FirstName + ' ' + QEmployeeAll.LastName AS EmployeeName
from tableName
WHERE SchedData.AssignDate = @Date
GROUP BY QEmployeeAll.FirstName ,QEmployeeAll.LastName, AssignDate
,CASE WHEN SUBSTRING(UDF.[R/L], PATINDEX('%[0-9]%', UDF.[R/L]), LEN(UDF.
[R/L])) IS NULL THEN 1 ELSE 0 END
ORDER BY RL_Num, EmployeeName ;
RL_Numは私のソートされた値です。ここ
は私の出力ウィンドウです:UPDATE 2:私はあなたのコードが間違って何をしたかを考え出し
、それは私を助けたおかげで、今私ができるソートすることができあなたのスニペットごとに、私はまだ私の要件を達成していない、ここでは、スクリーンショットと説明です。
ソート順序があるので、最初の3行が正しい表示された場合、値の次の3行は、その結果は、以降NULL値(RENAMAED07-19)の後に配置されるべきです目標は、NULL値または有効な値では問題ではないので、指定された行にそれらのデータセットを配置するだけです。最後の行は、別のタスクであり、名前に基づいてソートされているため、下部に表示されます。 ですので、出力はこのようになります。
RowsToBeSorted
1
1
1
NULL <-- This position is irrelevant to me
NULL <-- This position is irrelevant to me
NULL <-- This position is irrelevant to me
3 <-- since value is 3rd position
3 <-- since value is 3rd position
3 <-- since value is 3rd position
NULL <-- This position is irrelevant to me
十分にクリアであれば教えてください。