у меня есть SQL запросSQL-запрос, чтобы показать диапазон и счет для отсутствующих номеров
SELECT
Group_Id, MIN(Rec_Number) as RecStart, MAX(Rec_Number) AS RecEnd
FROM
Rec
WHERE
Group_Id != ''
GROUP BY
Group_Id
ORDER BY
Group_Id
Это производит следующие виды результатов.
92-2274 9222740001 9222740004
92-2275 9222750001 9222750026
etc...
Однако, если запись 3 отсутствует (например, в первой строке), запрос явно не учитывает ее. То, что я пытаюсь сделать, это следующее
92-2274 9222740001 9222740002
92-2274 9222740004 9222740018
92-2275 9222750001 9222750016
92-2275 9222750018 9222750026
etc...
Так по существу каждый раз, когда скрипт видит запись недостающей внутри группы он начинает новую строку, оставаясь внутри группы, прежде чем итерация на следующей группе. group_Id
, конечно, первые 6 цифр rec_Number
Я также хотел бы сделать это, а также
92-2274 0001 0002
92-2274 0003 0004
Или даже обрезать его и удалить ведущим 0, как хорошо, если это возможно, я знаю об использовании Right (Rec_Number, 4)
однако, поскольку это поплавок, автоматическое преобразование в строку, кажется, что-то испортило, так как я получаю +009 - это много столбцов, поэтому я предполагаю, что мне нужно бросить первое или что-то еще. Эта конкретная функция я мог бы сделать это Excel после того, как я предполагаю, но я уверен, что SQL мог бы это сделать, если бы парень, пишущий запрос, был администратором базы данных, а не неуклюжим администратором сервера (это я!)
Так есть ли способ сделать это в SQL также я должен предупредить вас, что стандартный CTE или использование таких функций, как номер строки, не работает, так как это SQL Server 2000 - да, это так!
Следовательно, я стараюсь найти сообщения о переполнении стека, которые применяются. Многие из них начинаются с ключевого слова WITH, что означает, что я не могу использовать ни одного из них для начала!
Я думаю, что мне нужен блок типа IF ELse, но я не уверен, какой метод я могу использовать для получения запроса для создания новой строки каждый раз, когда он попадает в отсутствующий параллельный номер в групповом диапазоне.
Конечный результат показывает мне диапазоны записей в каждой группе, выделяя отсутствующие через новую строку каждый раз.
SQL server 2000, но я использую SSMS 2014, база данных MS SQL 2000 –
Обновите свою базу данных. Вы используете базу данных, которая не поддерживается с апреля 2013 года. Время для обновления! –
Мне жаль, что я не могу доверять мне, но сейчас у меня нет такого варианта, как его не мое программное обеспечение. –