|
v7: Помогите плиз с SQLiteBase | ☑ | ||
---|---|---|---|---|
0
sysadminlk
08.08.19
✎
10:51
|
Перем базаДанных, запрос;
Процедура Сформировать() стрПоиска = "зии"; текст="SELECT *, id [ЭлБрака :Справочник.БракПриемка], |Контрагент [Контр :Справочник.Контрагенты] |FROM СпрБрак WHERE descr LIKE '%"+СокрЛП(стрПоиска)+"%' |INNER JOIN [Справочник.Контрагенты] Контр on СпрБрак.Контрагент = Контр.id and Контр.descr LIKE '%"+СокрЛП(стрПоиска)+"%'"; тз=запрос.ВыполнитьЗапрос(текст); тз.выгрузить(тб); КонецПроцедуры Процедура ПриОткрытии() базаДанных = СоздатьОбъект("SQLiteBase"); базаДанных.Открыть(":memory:"); запрос = базаДанных.НовыйЗапрос(); запрос.ВыполнитьЗапрос("create virtual table СпрБрак using dbeng(Справочник.БракПриемка)"); КонецПроцедуры // ПриОткрытии Процедура ПриЗакрытии() базаДанных.Закрыть(); КонецПроцедуры // ПриЗакрытии |
|||
1
sysadminlk
08.08.19
✎
10:53
|
в Справочник.БракПриемка есть реквизит Контрагент [Справочник.Контрагенты]
Как мне через SQLiteBase составить запрос чтоб поиск был по наименованию Справочник.БракПриемка и наименованию контрагента? |
|||
2
Djelf
08.08.19
✎
11:24
|
(1) WHERE должно находится после джойнов.
|
|||
3
palpetrovich
08.08.19
✎
11:34
|
(0) и алиас добавить нелишним будет
WHERE СпрБрак.descr LIKE '%"+СокрЛП(стрПоиска)+"%' |
|||
4
sysadminlk
08.08.19
✎
11:56
|
текст="SELECT * FROM СпрБрак
|INNER JOIN СпрКонтр on СпрБрак.Контрагент = СпрКонтр AND СпрКонтр.descr LIKE '%"+СокрЛП(стрПоиска)+"%' |WHERE СпрБрак.descr LIKE '%"+СокрЛП(стрПоиска)+"%'"; тз=запрос.ВыполнитьЗапрос(текст); {C:\ТЕСТТТТ.....ERT(10)}: no such column: СпрКонтр |
|||
5
sysadminlk
08.08.19
✎
11:57
|
Перем базаДанных, запрос;
Процедура Сформировать() стрПоиска = "шам"; текст="SELECT * FROM СпрБрак |INNER JOIN СпрКонтр on СпрБрак.Контрагент = СпрКонтр AND СпрКонтр.descr LIKE '%"+СокрЛП(стрПоиска)+"%' |WHERE СпрБрак.descr LIKE '%"+СокрЛП(стрПоиска)+"%'"; тз=запрос.ВыполнитьЗапрос(текст); тз.выгрузить(тб); КонецПроцедуры Процедура ПриОткрытии() базаДанных = СоздатьОбъект("SQLiteBase"); базаДанных.Открыть(":memory:"); запрос = базаДанных.НовыйЗапрос(); запрос.ВыполнитьЗапрос("create virtual table СпрБрак using dbeng(Справочник.БракПриемка);"); запрос.ВыполнитьЗапрос("create virtual table СпрКонтр using dbeng(Справочник.Контрагенты);"); КонецПроцедуры // ПриОткрытии Процедура ПриЗакрытии() базаДанных.Закрыть(); КонецПроцедуры // ПриЗакрытии |
|||
6
sysadminlk
08.08.19
✎
11:58
|
текст="SELECT * FROM СпрБрак
|INNER JOIN СпрКонтр on СпрБрак.Контрагент.id = СпрКонтр.id AND СпрКонтр.descr LIKE '%"+СокрЛП(стрПоиска)+"%' |WHERE СпрБрак.descr LIKE '%"+СокрЛП(стрПоиска)+"%'"; тз=запрос.ВыполнитьЗапрос(текст); {C:\ТЕСТТТТ.....ERT(10)}: no such column: СпрБрак.Контрагент.id |
|||
7
Злопчинский
08.08.19
✎
12:03
|
СпрБрак.Контрагент.id
вот у тебя с правочнике брака - есть ссылка на контргаента (спр.Контрагент) я вот как-то с трудом представляю что у ССЫЛКИ есть реквизит id |
|||
8
Злопчинский
08.08.19
✎
12:04
|
это не чорный запрос где платформа автоматом делает разыменование через точку
|
|||
9
Злопчинский
08.08.19
✎
12:04
|
напиши просто
СпрБрак.Контрагент = СпрКонтр.id |
|||
10
Ёпрст
08.08.19
✎
12:08
|
(0)
>>> запрос.ВыполнитьЗапрос("create virtual table СпрБрак using dbeng(Справочник.БракПриемка)"); это лишнее, давно есть автоподключение таблиц |
|||
11
sysadminlk
08.08.19
✎
12:10
|
SELECT СпрБрак.* FROM СпрБрак
INNER JOIN СпрКонтр on СпрБрак.Контрагент = СпрКонтр.id AND СпрКонтр.descr LIKE '%шам%' WHERE СпрБрак.descr LIKE '%шам%' что-то ищет долго и ничего не находит |
|||
12
Ёпрст
08.08.19
✎
12:13
|
(0)
текст=" |БракПриемка.id [ЭлБрака :Справочник.БракПриемка], |Контрагент [Контр :Справочник.Контрагенты] |FROM [Справочник.БракПриемка] БракПриемка |INNER JOIN [Справочник.Контрагенты] Контр on БракПриемка.Контрагент = Контр.id and Контр.descr LIKE '%:стрПоиска%' |WHERE БракПриемка.descr LIKE '%:стрПоиска%' |"; запрос.Подставлять("стрПоиска","Вася"); "; |
|||
13
sysadminlk
08.08.19
✎
12:38
|
текст="SELECT СпрБрак.id [ЭлБрака :Справочник.БракПриемка] FROM СпрБрак
|LEFT JOIN СпрКонтр on СпрБрак.Контрагент = СпрКонтр.id |WHERE СпрБрак.descr LIKE '%"+СокрЛП(стрПоиска)+"%' or СпрКонтр.descr LIKE '%"+СокрЛП(стрПоиска)+"%'"; оказывается так надо было ) спасибо (12) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |