Как я могу получить строки с запуском и время окончания между запуском и время окончания другой строки в SQL?

Объединение идей:

код:

PATHVAR='foo:bar baz:spam:eggs:'  # demo path with space and empty
printf '%s:\0' "$PATHVAR" | while IFS=: read -d: -r p; do
    echo $p
done | cat -n

выход:

1   foo
2   bar baz
3   spam
4   eggs
5   

1
задан Chris McCall 28 August 2009 в 21:12
поделиться

1 ответ

Я не уверен, что правильно вас понял, но если это так, похоже, что-то вроде этого сработает:

select RESULT.* from classmembercall as RESULT 
inner join classmembercall as INPUT 
    ON RESULT.startedontick BETWEEN INPUT.startedontick and INPUT.finishedontick 
    AND RESULT.finishedontick BETWEEN INPUT.startedontick and INPUT.finishedontick
where INPUT.CallGUID = 'CAE8210C-617A-49F4-A739-E442F39B55B0'

он должен выдать вам все вызовы между началом и концом данной записи журнала

, если вы необходимо дополнительно отфильтровать его по тому же InstanceGUID, тогда:

select RESULT.* from classmembercall as RESULT 
inner join classmembercall as INPUT 
    ON RESULT.startedontick BETWEEN INPUT.startedontick and INPUT.finishedontick 
    AND RESULT.finishedontick BETWEEN INPUT.startedontick and INPUT.finishedontick
    AND RESULT.InstanceGUID = INPUT.InstanceGUID
where INPUT.CallGUID = 'CAE8210C-617A-49F4-A739-E442F39B55B0'

обратите внимание, что с учетом ваших данных примера вы всегда будете получать только элемент с предоставленным CallGuild - потому что все строки имеют разные InstanceGUID ...

Удачи :)

2
ответ дан 3 September 2019 в 01:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: