![]() |
|
v7: Помогите написать запрос | ☑ | ||
---|---|---|---|---|
0
sysadminlk
30.03.16
✎
08:58
|
базаДанных = СоздатьОбъект("SQLiteBase");
базаДанных.Открыть(":memory:"); запрос = базаДанных.НовыйЗапрос(); запрос.ВыполнитьЗапрос("create virtual table РасходкиСтроки using dbeng(ДокументСтроки.Расходная)"); текст="SELECT |IDDOC [Докум :Документ.Расходная], |Товар [Номенклатура :Справочник.Товар] |FROM РасходкиСтроки WHERE Товар LIKE '%3010%'"; тз = СоздатьОбъект("ТаблицаЗначений"); тз = запрос.ВыполнитьЗапрос(текст); Возвращает пустую таблицу значений. |
|||
1
sysadminlk
30.03.16
✎
09:35
|
:( никто не знает чтоли?
ключевые слова SQLiteBase ДокументСтроки LIKE |
|||
2
ДенисЧ
30.03.16
✎
09:36
|
Дык у тебя товар, наверняка, ссылка на справочник... А там в ИД нет 3010 ...
|
|||
3
Mikeware
30.03.16
✎
09:37
|
чо за жуть?
|
|||
4
Ёпрст
гуру
30.03.16
✎
09:38
|
(0)
вот это выкини WHERE Товар LIKE '%3010%'"; и будет тебе счастье |
|||
5
Ёпрст
гуру
30.03.16
✎
09:39
|
ибо у товара нет id , которое содержит 3010
|
|||
6
Mikeware
30.03.16
✎
09:42
|
(5) а где вообще почитать про использование 1SQLite ?
|
|||
7
sysadminlk
30.03.16
✎
09:42
|
Товар это Справочник.Товар
мне нужно получить все документы где в товаре есть 3010 |
|||
8
Ёпрст
гуру
30.03.16
✎
09:42
|
мот тебе в наименовании или коде номенклатуры нужно 3010 искать ?
Или подставлять конкретный товар, лучше ? |
|||
9
ДенисЧ
30.03.16
✎
09:42
|
(7) дык того... В товаре, наименовании, коде?
Соединяй со справочником и к нему уже условие ставь... |
|||
10
Ёпрст
гуру
30.03.16
✎
09:42
|
(7) 3010 - это в Наименовании ?
|
|||
11
Mikeware
30.03.16
✎
09:42
|
(7) в товаре - где?
в коде, в наимеовании, в иде, в коробках с товаром? |
|||
12
sysadminlk
30.03.16
✎
09:42
|
(8) конкретный товар не пойдет
|
|||
13
Ёпрст
гуру
30.03.16
✎
09:43
|
(6) на 1cpp была целая ветка
|
|||
14
Ёпрст
гуру
30.03.16
✎
09:43
|
но, на самом деле, хватит и описалово к компоненте 1sqlite
|
|||
15
Ёпрст
гуру
30.03.16
✎
09:43
|
+ есть форум самого sqlite
|
|||
16
Ёпрст
гуру
30.03.16
✎
09:44
|
точнее, оф сайт проекта
|
|||
17
Mikeware
30.03.16
✎
09:44
|
(13) по 1спп применимо только слово "была"...
как в анекдоте про нового русского |
|||
18
sysadminlk
30.03.16
✎
09:44
|
(9) Нужно в наименовании товара искать 3010
|
|||
19
Ёпрст
гуру
30.03.16
✎
09:44
|
||||
20
Ёпрст
гуру
30.03.16
✎
09:44
|
||||
21
sysadminlk
30.03.16
✎
09:45
|
(9) Соединяй со справочником - эт как?
Товар [Номенклатура :Справочник.Товар] ? |
|||
22
Mikeware
30.03.16
✎
09:46
|
(20) спасибо. там бывал, но не видел
|
|||
23
sysadminlk
30.03.16
✎
09:48
|
ТИпо того ?
|
|||
24
sysadminlk
30.03.16
✎
09:48
|
текст="
|SELECT | РсТов.IDDOC [Докум :Документ.Расходная], | РсТов.Товар [Номенклатура :Справочник.Товар] |FROM | РасходкиСтроки AS РсТов, | СпрТовар AS СпТов ON СпТов.DESCR = РсТов.Товар | WHERE СпрТовар.DESCR LIKE '%3010%'; |"; |
|||
25
ДенисЧ
30.03.16
✎
09:48
|
(21) inner join Справочник.Товары AS Товары ON HасходкиСтроки.Товар = Товары.ID
|
|||
26
Ёпрст
гуру
30.03.16
✎
09:50
|
(21)
Процедура Сформировать() ТекстЗапроса=" |Select |Док.IDDOC [Докум :Документ.Расходная], |Док.Товар [Номенклатура :Справочник.Товар] |FROM [ДокументСтроки.Расходная] Док |inner join [Справочник.Товар] Спр on Спр.id = Док.Товар and Спр.descr like '%3010%' |"; Попытка база = СоздатьОбъект("SQLiteBase"); Исключение ЗагрузитьВнешнююКомпоненту("1sqlite.dll"); база = СоздатьОбъект("SQLiteBase"); КонецПопытки; база.Открыть(":memory:"); запрос = база.НовыйЗапрос(); ТЗ = запрос.ВыполнитьЗапрос(ТекстЗапроса); ТЗ.ВыбратьСтроку(); КонецПроцедуры // Сформировать |
|||
27
ДенисЧ
30.03.16
✎
09:50
|
СпрТовар AS СпТов ON СпТов.DESCR = РсТов.Товар
Расстрелять. |
|||
28
Mikeware
30.03.16
✎
09:50
|
(27) ну что ты такой злой? у тебя пап-мам был?©
может, просто повесить? |
|||
29
Ёпрст
гуру
30.03.16
✎
09:51
|
(22) вообще, для дбф прикольная тема, но на некоторых запросах проигрывает oledb в скорости, если последний правильно составлен и попадает в индекс
|
|||
30
ДенисЧ
30.03.16
✎
09:51
|
(28) Повесить. А потом расстрелять. На 10 лет без права переписки.
|
|||
31
Mikeware
30.03.16
✎
09:53
|
(30) устроил тут... тир, панимаэшь...
|
|||
32
sysadminlk
30.03.16
✎
09:55
|
(26) спасибо!
а что запрос.ВыполнитьЗапрос("create virtual table РасходкиСтроки using dbeng(ДокументСтроки.Расходная)"); не надо делать чтоли? |
|||
33
Ёпрст
гуру
30.03.16
✎
09:56
|
(32) нет. Давно есть автоподключение таблиц
|
|||
34
sysadminlk
30.03.16
✎
09:57
|
а что лучше? (26) или
|SELECT | РсТов.IDDOC [Докум :Документ.Расходная], | РсТов.Товар [Номенклатура :Справочник.Товар] |FROM | РасходкиСтроки AS РсТов, | СпрТовар AS СпТов ON СпТов.id = РсТов.Товар | WHERE СпТов.descr LIKE '%3010%'; |"; |
|||
35
Mikeware
30.03.16
✎
09:59
|
(34) лучше - (26) . а еще лучше - (30)
Ты разберись, что делает (26) и что делает (34) |
|||
36
Mikeware
30.03.16
✎
10:00
|
(34) кстати, в (20) лежит консоль, попробуй в ней.
|
|||
37
sysadminlk
30.03.16
✎
10:07
|
время выполнения несколько замеров
SELECT РсТов.IDDOC [Докум :Документ.Расходная], РсТов.Товар [Номенклатура :Справочник.Товар] FROM РасходкиСтроки AS РсТов, СпрТовар AS СпТов ON СпТов.id = РсТов.Товар WHERE СпТов.descr LIKE '%3010%'; 2728 Select Док.IDDOC [Докум :Документ.Расходная], Док.Товар [Номенклатура :Справочник.Товар] FROM [ДокументСтроки.Расходная] Док inner join [Справочник.Товар] Спр on Спр.id = Док.Товар and Спр.descr like '%3010%' 2676 SELECT РсТов.IDDOC [Докум :Документ.Расходная], РсТов.Товар [Номенклатура :Справочник.Товар] FROM РасходкиСтроки AS РсТов, СпрТовар AS СпТов ON СпТов.id = РсТов.Товар WHERE СпТов.descr LIKE '%3010%'; 2691 Select Док.IDDOC [Докум :Документ.Расходная], Док.Товар [Номенклатура :Справочник.Товар] FROM [ДокументСтроки.Расходная] Док inner join [Справочник.Товар] Спр on Спр.id = Док.Товар and Спр.descr like '%3010%' 2685 SELECT РсТов.IDDOC [Докум :Документ.Расходная], РсТов.Товар [Номенклатура :Справочник.Товар] FROM РасходкиСтроки AS РсТов, СпрТовар AS СпТов ON СпТов.id = РсТов.Товар WHERE СпТов.descr LIKE '%3010%'; 2729 Select Док.IDDOC [Докум :Документ.Расходная], Док.Товар [Номенклатура :Справочник.Товар] FROM [ДокументСтроки.Расходная] Док inner join [Справочник.Товар] Спр on Спр.id = Док.Товар and Спр.descr like '%3010%' 2693 |
|||
38
sysadminlk
30.03.16
✎
10:08
|
(26) получается быстрее )))
|
|||
39
sysadminlk
30.03.16
✎
10:13
|
Всем спасибо! думаю тема закрыта )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |