Название: SQL запрос для фомирования адреса точки учета и данных о приборе Отправлено: surzhanskyalex от 04.05.2021, 06:07:53 я пытаюсь сделать один запрос к таблицам Node . Address, Equip для формирования списка точек учета с адресами типом и номером прибора.
но из-за разной "длины" адреса (в адресе разное количество элементов город, улица, дом , объект) некоторые заводские номера приборов в выборку не попадают. Как этот запрос реализован во ВЗЛЕТ СП-4? одним запросом или ВЗЛЕТ СП на каждый адрес делает отдельный запрос? SELECT Address.Name AS City, Table_1.Name AS Street, Table_2.Name AS House, Table_3.Name AS Object, Table_4.Name,Table_2.Id, [dbo].[Node].Name, Node.Id, Equip.Name, Equip.SerialNumber FROM Address LEFT JOIN (SELECT Address.Id, Address.AddressId, Address.Name FROM Address) AS Table_1 ON Address.Id= Table_1.AddressId LEFT JOIN (SELECT Address.Id, Address.AddressId, Address.Name FROM Address) AS Table_2 ON Table_1.Id= Table_2.AddressId LEFT JOIN (SELECT Address.Id, Address.AddressId, Address.Name FROM Address) AS Table_3 ON Table_2.Id= Table_3.AddressId LEFT JOIN (SELECT Address.Id, Address.AddressId, Address.Name FROM Address) AS Table_4 ON Table_3.Id= Table_4.AddressId LEFT JOIN [dbo].[Node] ON Table_2.Id= Node.AddressId LEFT JOIN [dbo].Equip ON Node.Id= Equip.Id Where Address.type =1 Название: Re:SQL запрос для фомирования адреса точки учета и данных о приборе Отправлено: Дмитрий Пархоменко от 04.05.2021, 10:59:42 Здравствуйте!
Взлет СП явно готовые запросы к БД не использует, он их формирует "на лету" при помощи ORM системы, то есть по факту, у нас нет готовых SQL-запросов. Могу посоветовать Вам почитать про рекурсивные (иерархические) запросы, это поможет Вам с адресами. Ну а с другими таблицами уже объедините. Название: Re:SQL запрос для фомирования адреса точки учета и данных о приборе Отправлено: surzhanskyalex от 05.05.2021, 08:42:14 Отлично, нашел решение, спасибо!
|