Цикл в запросе MS SQL

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
stsg
Сообщения: 1
Зарегистрирован: 29 май 2017, 11:50

29 май 2017, 11:53

Доброго дня!
Есть одна таблица tblMain с тремя полями:
ID Info MainID
1 первый NULL
2 второй 1
3 третий 2
4 четыре 3
5 пять 4
Поле MainID - это родительский ID предыдущей записи..
При выборе пятой записи мне нужно проследить всю цепочку до места где MainID = LULL
У меня это работает так:
Выбираем пятую строку - SELECT Info FROM tblMain WHERE ID = <MainID> - тут мы видим запись четыре - SELECT Info FROM tblMain WHERE ID = (SELECT Info FROM tblMain WHERE ID = <MainID>) - тут мы видим запись три - SELECT Info FROM tblMain WHERE ID = (SELECT Info FROM tblMain WHERE ID = (SELECT Info FROM tblMain WHERE ID = <MainID>)) - тут мы видим запись два - SELECT Info FROM tblMain WHERE ID = (SELECT Info FROM tblMain WHERE ID = (SELECT Info FROM tblMain WHERE ID = (SELECT Info FROM tblMain WHERE ID = <MainID>))) - тут мы видим запись один...
Нужно преобразовать это все в цикл WHILE - у меня не выходит...
Конец цикла должен быть когда MainID = NULL
В идеале хотел получить все записи в одну строку "пять - четыре - третий - второй - первый"
Слива
Сообщения: 133
Зарегистрирован: 19 мар 2016, 10:15

29 май 2017, 16:02

А где там консоль вообще в Accesse? Куда данные-то выводить?
Ответить