Если у меня есть данные, хранящиеся в db, так и так.Количество экземпляров во временном интервале в SQL
fk start end
1 1000 1100
1 1030 1130
2 1000 1100
Как я могу написать мой запрос, так что я могу получить результат, как:
fk timeslot occurences
1 1000 1
1 1030 2
1 1100 1
2 1000 1
2 1030 1
Как вы можете сказать, что я работаю с шагом 30 мин. Я могу достичь этой серверной части, но она требует, чтобы я либо запускал запрос запросов, либо каждый раз попадал в БД, подсчитывая строки между ними два раза. Если я смогу собрать эту информацию в 1 запросе, вся моя система будет намного быстрее.
FK - это идентификатор моего ресурса, который зарезервирован.
В принципе, я хочу, чтобы пользователь знал, сколько открытых пятен осталось на основе вхождений в БД, если не ударить БД несколько раз, если это возможно. Даже QoQ болит, если я должен запускать один для каждого 30-минутного прироста дня.
Вы также можете предположить, что для fk 1 и 2 у меня есть известное максимальное время запуска и максимальное конечное время, если это имеет значение.
Так что вы пробовали? –
Я пробовал делать это на стороне сервера, и я знаю, что смогу. Я спрашиваю, можно ли сделать это в MSSQL. Я не знаю, с чего начать в SQL. Я думаю, что это можно сделать с помощью операторов CASE, но было бы так же, как 48 из них, что неэффективно. – Leeish
Не знаете, как вы получили 'timeslot' в результате –