私は時間間隔のロジックに追いついていません。終了時刻と開始時刻の間に時間間隔がある場合は、そのデータを分離する必要があります。私はこのようなクエリを実行するために使用時間を処理する方法SQL Serverの間隔?
、
DECLARE @EMP_DETAILS TABLE
(ID INT,
EMP_ID INT,
START_TIME VARCHAR(10),
END_TIME VARCHAR(10)
)
INSERT INTO @EMP_DETAILS
SELECT 1, 50, '09:30', '10:30'
UNION
SELECT 2, 50, '10:30', '11:45'
UNION
SELECT 3, 50, '11:45', '12:15'
UNION
SELECT 4, 50, '12:15', '13:40'
UNION
SELECT 5, 50, '14:00', '14:40'
UNION
SELECT 6, 50, '14:40', '15:10'
UNION
SELECT 7, 50, '15:10', '18:00'
SELECT
A.EMP_ID, A.START_TIME, A.END_TIME,
B.START_TIME, B.END_TIME
FROM
@EMP_DETAILS A
LEFT JOIN
@EMP_DETAILS B ON A.END_TIME = B.START_TIME
AND A.EMP_ID = B.EMP_ID
私の期待される出力は次のようになります。
EMP_ID START_TIME END_TIME RN
---------------------------------
50 09:30 10:30 1
50 10:30 11:45 1
50 11:45 12:15 1
50 14:00 14:40 2
50 14:40 15:10 2
私は希望を持って、あなたは私が言うことをしようとしていますかについて明確にしています。..
ありがとうございます。
**どのSQL Serverバージョン**を使用していますか? SQL Server ** 2008 **の時点では、適切な* TIMEデータ型があります。すべてを文字列に絞るのではなく、常に最も適切なデータ型を使用する必要があります。 –